200 likes | 319 Views
Multiscale, Multigranular Land Cover Classification: Performance Optimization. Vijay Gandhi, Abhinaya Sinha. 1 st May, 2006. Outline. Motivation Problem Statement Related Work Our contributions Results Conclusion. Motivation. Forest Management Identification of Timber land
E N D
Multiscale, Multigranular Land Cover Classification: Performance Optimization Vijay Gandhi, Abhinaya Sinha 1st May, 2006
Outline • Motivation • Problem Statement • Related Work • Our contributions • Results • Conclusion
Motivation • Forest Management • Identification of Timber land • Habitat Management: Hardwood is an habitat for the endangered spotted owl Courtesy: Junchang Ju (Boston U)
Problem Statement • Given: Remotely sensed image, land cover class label hierarchy • Find: Produce images with land cover classes assigned at multiple spatial scales • Objective: Minimize execution time • Constraints: Algorithm to achieve the output is already present
Problem Statement illustrated Remotely Sensed Image Label Hierarchy C – Conifer H – Hardwood F – Forest
Related Work • Current implementation in MATLAB • GCC Compiler Optimization options • Parallel Computing
Algorithm Divide input image into dyadic segments recursively Calculate the log-likelihood for each segment using Expectation Maximization Decide the label for each segment and generate images
Contribution • Improved performance of the algorithm • conversion of existing MATLAB implementation to C programming language • Identified the need for parallelizing the C implementation
Performance improvement • Converted MATLAB implementation to C • Why C? • Compiled vs. interpreted language • Compiler directives • Passing by reference • MATLAB implementation: 1500 lines of code • Issues: Memory management, Indexing, Matrix operations
Code Profiling * These functions are part of gen_loglike and take 25% of gen_loglike()’s execution time or 20% of overall execution time • gen_loglike calculates the log-likelihood of a general class • It uses Expectation Maximization • # gen_loglike = f ( # general classes, image size, spatial scale) • # mix_product_elementwise = f ( spatial scale)
Parallelizing implementation • mix_product_elementwise – multiplies two vectors element-by-element C = A * B C[n] = A[n] * B[n] • Use Unified Parallel C (UPC) to parallelize
Parallelizing implementation • Matrix level parallelization did not help • Need for parallelizing at the function level • Nice to have directives that parallelize a function rather than an individual matrix operation
Validation Methodology • Tests on real data sets • 128 x 128 pixels • 64 x 64 pixels Plymouth County, Massachusetts (each pixel – 30m x 30m) • Experimental setup: • Candidates: C and MATLAB implementations • Sun Solaris 512 MB RAM, 1.6 GHz
Experimental Validation Execution Time (Seconds)
Experimental Validation Execution Time (Seconds)
Conclusion • Converted from MATLAB to C implementation • Improvement in performance • Identified the need for parallelizing
Future Work • Parallelizing the code
References • Multiscale Multigranular Land Cover Characterization, Kolaczyk E.D. et al, Journal of the American Statistical Association, 2005 • Probability and Statistics, 3rd edition, DeGroot, Schervish • Computer Architecture, 2nd edition, Patterson, Henessey • Introduction to Parallel Computing, 2nd edition, Ananth Grama et al • MATLAB code - http://math.bu.edu/people/kolaczyk/software.html • GCC Optimization - http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
Acknowledgements • Dr. Shashi Shekhar • Dr. Eric Kolaczyk • Dr. Sucharita Gopal • Dr. Junchang Ju