The Experts below are selected from a list of 228 Experts worldwide ranked by ideXlab platform
Gadi Haber - One of the best experts on this subject based on the ideXlab platform.
-
parallelization hints via code Skeletonization
IEEE Transactions on Parallel and Distributed Systems, 2015Co-Authors: Cfir Aguston, Yosi Ben Asher, Gadi HaberAbstract:Tools that provide optimization hints for program developers are facing severe obstacles and often unable to provide meaningful guidance on how to parallelize real-life applications. The main reason is due to the high code complexity and its large size when considering commercially valuable code. Such code is often rich with pointers, heavily nested conditional statements, nested while–based loops, function calls, etc. These constructs prevent existing compiler analysis from extracting the full parallelization potential. We propose a new paradigm to overcome this issue by automatically transforming the code’ into a much simpler skeleton-like form that is more conductive for auto-parallelization. We then apply existing tools of source–level automatic parallelization on the skeletonized code in order to expose possible parallelization patterns. The skeleton code, along with the parallelized version, are then provided to the programmer in the form of an Integrated Development Environment (IDE) recommendation. The proposed Skeletonization Algorithm replaces pointers by integer indexes and C-struct references by references to multi-dimensional arrays. For example, the loop $while(p\ne NULL)\lbrace p\rightarrow val++; p=p\rightarrow next;\rbrace$ will be skeletonized to: $for(Ip=0;Ip where $Aval[]$ holds the embedding of the original list. Consequently, the main goal of the Skeletonization process is to embed pointer-based data structures into arrays. Though the skeletonized code is not semantically equivalent to the original code, it suggests a possible parallelization pattern for the selected code segment and can be used as an effective parallelization hint to the programmer. We applied the method on the SPEC CPU benchmarks and the Skeletonization process detected 27 percent additional loops that can be parallelized/vectorized on top of the compiler auto-parallelizer/vectorizer. A performance gain of up to 45 percent was measured for benchmarks that were manually parallelized based on the generated skeleton code.
-
parallelization hints via code Skeletonization
ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2014Co-Authors: Cfir Aguston, Yosi Ben Asher, Gadi HaberAbstract:Tools that provide optimization hints for program developers are facing severe obstacles and often unable to provide meaningful guidance on how to parallelize real--life applications. The main reason is due to the high code complexity and its large size when considering commercially valuable code. Such code is often rich with pointers, heavily nested conditional statements, nested while--based loops, function calls, etc. These constructs prevent existing compiler analysis from extracting the full parallelization potential. We propose a new paradigm to overcome this issue by automatically transforming the code into a much simpler skeleton-like form that is more conductive for auto-parallelization. We then apply existing tools of source--level automatic parallelization on the skeletonized code in order to expose possible parallelization patterns. The skeleton code, along with the parallelized version, are then provided to the programmer in the form of an IDE (Integrated Development Environment) recommendation. The proposed Skeletonization Algorithm replaces pointers by integer indexes and C-struct references by references to multi-dimensional arrays. This is because automatic parallelizers cannot handle pointer expressions. For example, while(p != NULL){ p->val++; p=p->next; } will be skeletonized to the parallelizable for(Ip=0;Ip
Cfir Aguston - One of the best experts on this subject based on the ideXlab platform.
-
parallelization hints via code Skeletonization
IEEE Transactions on Parallel and Distributed Systems, 2015Co-Authors: Cfir Aguston, Yosi Ben Asher, Gadi HaberAbstract:Tools that provide optimization hints for program developers are facing severe obstacles and often unable to provide meaningful guidance on how to parallelize real-life applications. The main reason is due to the high code complexity and its large size when considering commercially valuable code. Such code is often rich with pointers, heavily nested conditional statements, nested while–based loops, function calls, etc. These constructs prevent existing compiler analysis from extracting the full parallelization potential. We propose a new paradigm to overcome this issue by automatically transforming the code’ into a much simpler skeleton-like form that is more conductive for auto-parallelization. We then apply existing tools of source–level automatic parallelization on the skeletonized code in order to expose possible parallelization patterns. The skeleton code, along with the parallelized version, are then provided to the programmer in the form of an Integrated Development Environment (IDE) recommendation. The proposed Skeletonization Algorithm replaces pointers by integer indexes and C-struct references by references to multi-dimensional arrays. For example, the loop $while(p\ne NULL)\lbrace p\rightarrow val++; p=p\rightarrow next;\rbrace$ will be skeletonized to: $for(Ip=0;Ip where $Aval[]$ holds the embedding of the original list. Consequently, the main goal of the Skeletonization process is to embed pointer-based data structures into arrays. Though the skeletonized code is not semantically equivalent to the original code, it suggests a possible parallelization pattern for the selected code segment and can be used as an effective parallelization hint to the programmer. We applied the method on the SPEC CPU benchmarks and the Skeletonization process detected 27 percent additional loops that can be parallelized/vectorized on top of the compiler auto-parallelizer/vectorizer. A performance gain of up to 45 percent was measured for benchmarks that were manually parallelized based on the generated skeleton code.
-
parallelization hints via code Skeletonization
ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2014Co-Authors: Cfir Aguston, Yosi Ben Asher, Gadi HaberAbstract:Tools that provide optimization hints for program developers are facing severe obstacles and often unable to provide meaningful guidance on how to parallelize real--life applications. The main reason is due to the high code complexity and its large size when considering commercially valuable code. Such code is often rich with pointers, heavily nested conditional statements, nested while--based loops, function calls, etc. These constructs prevent existing compiler analysis from extracting the full parallelization potential. We propose a new paradigm to overcome this issue by automatically transforming the code into a much simpler skeleton-like form that is more conductive for auto-parallelization. We then apply existing tools of source--level automatic parallelization on the skeletonized code in order to expose possible parallelization patterns. The skeleton code, along with the parallelized version, are then provided to the programmer in the form of an IDE (Integrated Development Environment) recommendation. The proposed Skeletonization Algorithm replaces pointers by integer indexes and C-struct references by references to multi-dimensional arrays. This is because automatic parallelizers cannot handle pointer expressions. For example, while(p != NULL){ p->val++; p=p->next; } will be skeletonized to the parallelizable for(Ip=0;Ip
Kristen M Meiburger - One of the best experts on this subject based on the ideXlab platform.
-
Skeletonization based blood vessel quantification Algorithm for in vivo photoacoustic 3d images
2017Co-Authors: Kristen M MeiburgerAbstract:This chapter (the contents of this chapter build upon the paper: K.M. Meiburger, S.Y. Nam, E. Chung, L.J. Suggs, S.Y. Emelianov, and F. Molinari, “Skeletonization Algorithm-based blood vessel quantification using in vivo 3D photoacoustic imaging”, In: Physics in Medicine and Biology, 61(22), 2016) closes the second section of this work, which is based on emphasizing quantitative imaging techniques for the assessment of architectural parameters of vasculature that can be extracted from 3D volumes. A Skeletonization technique for the quantitative assessment of vascular architecture in burn wounds was developed and validated using completely non-invasive photoacoustic imaging, thus not requiring any contrast agent administration. It was shown how this technique can provide quantitative information about the vascular network from photoacoustic 3D images that can distinguish healthy from diseased tissue. Blood vessels are the only system to provide nutrients and oxygen to every part of the body. Many diseases have significant effects on blood vessel formation, so the vascular network can be a cue to assess malicious tumor and ischemic tissues. Various imaging techniques can visualize blood vessel structure, but their applications are often constrained by expensive costs, contrast agents, ionizing radiations, or a combination of the above. Photoacoustic imaging combines the high-contrast and spectroscopic-based specificity of optical imaging with the high spatial resolution of ultrasound imaging, and image contrast depends on optical absorption. This enables the detection of light absorbing chromophores such as hemoglobin with a greater penetration depth compared to purely optical techniques. A Skeletonization Algorithm for vessel architectural analysis using non-invasive photoacoustic 3D images acquired without the administration of any exogenous contrast agents is presented in this chapter. 3D photoacoustic images were acquired on rats (n \(=4\)) in two different time points: before and after a burn surgery. A Skeletonization technique based on the application of a vesselness filter and medial axis extraction is proposed to extract the vessel structure from the image data and six vascular parameters (number of vascular trees (NT), vascular density (VD), number of branches (NB), 2D distance metric (DM), inflection count metric (ICM), and sum of angles metric (SOAM)) were calculated from the skeleton. The parameters were compared (1) in locations with and without the burn wound on the same day and (2) in the same anatomic location before (control) and after the burn surgery. Four out of the six descriptors were statistically different (VD, NB, DM, ICM, \(p<0.05\)) when comparing two anatomic locations on the same day and when considering the same anatomic location at two separate times (i.e., before and after burn surgery). The study demonstrates how it is possible to obtain quantitative characterization of the vascular network from 3D photoacoustic images without any exogenous contrast agent which can assess microenvironmental changes related to disease progression.
-
Skeletonization Algorithm based blood vessel quantification using in vivo 3d photoacoustic imaging
Physics in Medicine and Biology, 2016Co-Authors: Kristen M Meiburger, E Chung, Laura J Suggs, Stanislav Emelianov, Filippo MolinariAbstract:: Blood vessels are the only system to provide nutrients and oxygen to every part of the body. Many diseases can have significant effects on blood vessel formation, so that the vascular network can be a cue to assess malicious tumor and ischemic tissues. Various imaging techniques can visualize blood vessel structure, but their applications are often constrained by either expensive costs, contrast agents, ionizing radiations, or a combination of the above. Photoacoustic imaging combines the high-contrast and spectroscopic-based specificity of optical imaging with the high spatial resolution of ultrasound imaging, and image contrast depends on optical absorption. This enables the detection of light absorbing chromophores such as hemoglobin with a greater penetration depth compared to purely optical techniques. We present here a Skeletonization Algorithm for vessel architectural analysis using non-invasive photoacoustic 3D images acquired without the administration of any exogenous contrast agents. 3D photoacoustic images were acquired on rats (n = 4) in two different time points: before and after a burn surgery. A Skeletonization technique based on the application of a vesselness filter and medial axis extraction is proposed to extract the vessel structure from the image data and six vascular parameters (number of vascular trees (NT), vascular density (VD), number of branches (NB), 2D distance metric (DM), inflection count metric (ICM), and sum of angles metric (SOAM)) were calculated from the skeleton. The parameters were compared (1) in locations with and without the burn wound on the same day and (2) in the same anatomic location before (control) and after the burn surgery. Four out of the six descriptors were statistically different (VD, NB, DM, ICM, p < 0.05) when comparing two anatomic locations on the same day and when considering the same anatomic location at two separate times (i.e. before and after burn surgery). The study demonstrates an approach to obtain quantitative characterization of the vascular network from 3D photoacoustic images without any exogenous contrast agent which can assess microenvironmental changes related to disease progression.
Filippo Molinari - One of the best experts on this subject based on the ideXlab platform.
-
Skeletonization Algorithm based blood vessel quantification using in vivo 3d photoacoustic imaging
Physics in Medicine and Biology, 2016Co-Authors: Kristen M Meiburger, E Chung, Laura J Suggs, Stanislav Emelianov, Filippo MolinariAbstract:: Blood vessels are the only system to provide nutrients and oxygen to every part of the body. Many diseases can have significant effects on blood vessel formation, so that the vascular network can be a cue to assess malicious tumor and ischemic tissues. Various imaging techniques can visualize blood vessel structure, but their applications are often constrained by either expensive costs, contrast agents, ionizing radiations, or a combination of the above. Photoacoustic imaging combines the high-contrast and spectroscopic-based specificity of optical imaging with the high spatial resolution of ultrasound imaging, and image contrast depends on optical absorption. This enables the detection of light absorbing chromophores such as hemoglobin with a greater penetration depth compared to purely optical techniques. We present here a Skeletonization Algorithm for vessel architectural analysis using non-invasive photoacoustic 3D images acquired without the administration of any exogenous contrast agents. 3D photoacoustic images were acquired on rats (n = 4) in two different time points: before and after a burn surgery. A Skeletonization technique based on the application of a vesselness filter and medial axis extraction is proposed to extract the vessel structure from the image data and six vascular parameters (number of vascular trees (NT), vascular density (VD), number of branches (NB), 2D distance metric (DM), inflection count metric (ICM), and sum of angles metric (SOAM)) were calculated from the skeleton. The parameters were compared (1) in locations with and without the burn wound on the same day and (2) in the same anatomic location before (control) and after the burn surgery. Four out of the six descriptors were statistically different (VD, NB, DM, ICM, p < 0.05) when comparing two anatomic locations on the same day and when considering the same anatomic location at two separate times (i.e. before and after burn surgery). The study demonstrates an approach to obtain quantitative characterization of the vascular network from 3D photoacoustic images without any exogenous contrast agent which can assess microenvironmental changes related to disease progression.
Yosi Ben Asher - One of the best experts on this subject based on the ideXlab platform.
-
parallelization hints via code Skeletonization
IEEE Transactions on Parallel and Distributed Systems, 2015Co-Authors: Cfir Aguston, Yosi Ben Asher, Gadi HaberAbstract:Tools that provide optimization hints for program developers are facing severe obstacles and often unable to provide meaningful guidance on how to parallelize real-life applications. The main reason is due to the high code complexity and its large size when considering commercially valuable code. Such code is often rich with pointers, heavily nested conditional statements, nested while–based loops, function calls, etc. These constructs prevent existing compiler analysis from extracting the full parallelization potential. We propose a new paradigm to overcome this issue by automatically transforming the code’ into a much simpler skeleton-like form that is more conductive for auto-parallelization. We then apply existing tools of source–level automatic parallelization on the skeletonized code in order to expose possible parallelization patterns. The skeleton code, along with the parallelized version, are then provided to the programmer in the form of an Integrated Development Environment (IDE) recommendation. The proposed Skeletonization Algorithm replaces pointers by integer indexes and C-struct references by references to multi-dimensional arrays. For example, the loop $while(p\ne NULL)\lbrace p\rightarrow val++; p=p\rightarrow next;\rbrace$ will be skeletonized to: $for(Ip=0;Ip where $Aval[]$ holds the embedding of the original list. Consequently, the main goal of the Skeletonization process is to embed pointer-based data structures into arrays. Though the skeletonized code is not semantically equivalent to the original code, it suggests a possible parallelization pattern for the selected code segment and can be used as an effective parallelization hint to the programmer. We applied the method on the SPEC CPU benchmarks and the Skeletonization process detected 27 percent additional loops that can be parallelized/vectorized on top of the compiler auto-parallelizer/vectorizer. A performance gain of up to 45 percent was measured for benchmarks that were manually parallelized based on the generated skeleton code.
-
parallelization hints via code Skeletonization
ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2014Co-Authors: Cfir Aguston, Yosi Ben Asher, Gadi HaberAbstract:Tools that provide optimization hints for program developers are facing severe obstacles and often unable to provide meaningful guidance on how to parallelize real--life applications. The main reason is due to the high code complexity and its large size when considering commercially valuable code. Such code is often rich with pointers, heavily nested conditional statements, nested while--based loops, function calls, etc. These constructs prevent existing compiler analysis from extracting the full parallelization potential. We propose a new paradigm to overcome this issue by automatically transforming the code into a much simpler skeleton-like form that is more conductive for auto-parallelization. We then apply existing tools of source--level automatic parallelization on the skeletonized code in order to expose possible parallelization patterns. The skeleton code, along with the parallelized version, are then provided to the programmer in the form of an IDE (Integrated Development Environment) recommendation. The proposed Skeletonization Algorithm replaces pointers by integer indexes and C-struct references by references to multi-dimensional arrays. This is because automatic parallelizers cannot handle pointer expressions. For example, while(p != NULL){ p->val++; p=p->next; } will be skeletonized to the parallelizable for(Ip=0;Ip