CFP last date
20 May 2024
Reseach Article

Teaching Parallel Programming for Time-Efficient Computer Applications

by A. Asaduzzaman, R. Asmatulu, M. Rahman
International Journal of Computer Applications
Foundation of Computer Science (FCS), NY, USA
Volume 90 - Number 7
Year of Publication: 2014
Authors: A. Asaduzzaman, R. Asmatulu, M. Rahman
10.5120/15585-4264

A. Asaduzzaman, R. Asmatulu, M. Rahman . Teaching Parallel Programming for Time-Efficient Computer Applications. International Journal of Computer Applications. 90, 7 ( March 2014), 18-25. DOI=10.5120/15585-4264

@article{ 10.5120/15585-4264,
author = { A. Asaduzzaman, R. Asmatulu, M. Rahman },
title = { Teaching Parallel Programming for Time-Efficient Computer Applications },
journal = { International Journal of Computer Applications },
issue_date = { March 2014 },
volume = { 90 },
number = { 7 },
month = { March },
year = { 2014 },
issn = { 0975-8887 },
pages = { 18-25 },
numpages = {9},
url = { https://ijcaonline.org/archives/volume90/number7/15585-4264/ },
doi = { 10.5120/15585-4264 },
publisher = {Foundation of Computer Science (FCS), NY, USA},
address = {New York, USA}
}
%0 Journal Article
%1 2024-02-06T22:10:25.689110+05:30
%A A. Asaduzzaman
%A R. Asmatulu
%A M. Rahman
%T Teaching Parallel Programming for Time-Efficient Computer Applications
%J International Journal of Computer Applications
%@ 0975-8887
%V 90
%N 7
%P 18-25
%D 2014
%I Foundation of Computer Science (FCS), NY, USA
Abstract

Academic research and engineering challenge both require high performance computing (HPC), which can be achieved through parallel programming. The existing curricula of most universities do not properly address the major transition from single-core to multicore systems and sequential to parallel programming. They focus on applying application program interface (API) libraries and open multiprocessing (OpenMP), message passing interface (MPI), and compute unified device architecture (CUDA)/GPU techniques. This approach misses the goal of developing students' long-term ability to solve real-life problems by 'thinking in parallel'. In this article, a novel approach is proposed to teach parallel computing that will prepare computer application developers for present and future computation challenges. Using multicore/manycore architecture and popular challenging problems from areas like computer science, proposed approach teaches how to analyze and develop efficient solutions for the problems. As preliminary work, some multithreaded parallel programs are introduced to computer science and engineering students. Based on the feedbacks from information technology (IT) professionals and Student Outcomes Assessment Reports, proposed approach has potential to provide adequate knowledge so that students can fulfill the growing industry demands for HPC. Based on the Steady State Heat Equation experiment, CUDA/GPU parallel programming may achieve up to 241x speed up factor while simulating heat transfer on a 5000x5000 thin surface.

References
  1. NVIDIA. 2014. Nvidia: CUDA. http://www. nvidia. com/ object/cuda_home_new. html (accessed on Feb 1, 2014).
  2. Udacity. 2014. Introduction to Parallel Programming. https://www. udacity. com/course/cs344 (accessed on Feb 1, 2014).
  3. Intel Developer Zone. 2014. Intel Many Integrated Core Architecture (Intel MIC Architecture). http://software. intel. com/en-us/forums/intel-many-integrated-core (accessed on Feb 1, 2014).
  4. Marowka, A. 2008. Think Parallel: Teaching Parallel Programming Today. IEEE Distributed Systems Online, Vol. 9, No. 8.
  5. Mellor-Crummey, J. , Gropp, W. , and Herlihy, M. 2010. Teaching parallel programming: a roundtable discussion. XRDS: Crossroads, The ACM Magazine for Students - The Changing Face of Programming, Vol. 17, No. 1, pp. 28-30.
  6. OpenMP. 2014. The OpenMP API specification for parallel programming. http://openmp. org/wp/ (accessed on Feb 1, 2014).
  7. Multicore Programming Education. 2009. Workshop on Directions in Multicore Programming Education. Washington DC.
  8. Multicore LA. 2011. Open Source Software, Multicore and Parallel Computing Miniconference. http:// multicorelca. wordpress. com (accessed on Feb 1, 2014).
  9. Zhu, Y. 2008. Supercomputing Undergraduate Program in Maine (SuperMe). NSF RUE Award 0754951.
  10. Zhang, W. 2011. Collaborative Proposal: Problem-Based Learning of Multithreaded Programming. NSF CCLI Award1063644.
  11. Brown, R. 2010. A strategy for injecting parallel computing education throughout the computer science curriculum. NSF CCLI Award 0942190.
  12. insidePHC. 2014. Trends Show Huge Growth in Parallel Programming Job Market. http://insidehpc. com/ 2011/07/16/trends-show-huge-growth-in-parallel-programming-job-market/ (accessed on Feb 1, 2014).
  13. Asaduzzaman, A. , Asmatulu, R. , and Pendse, R. 2013. Thinking in Parallel: Multicore Parallel Programming for STEM Education. American Society for Engineering Education (ASEE'13) Midwest Section Annual Conference, Salina, Kansas.
  14. Open MPI. 2014. Open MPI: High Performance Computing. http://www. open-mpi. org/ (accessed on Feb 1, 2014).
  15. Ernst, D. J. , et al. 2008. Concurrent CS: Preparing Students for a Multicore World. ITiCSE'08, 2008.
  16. Adams, J. , Nevison, C. and Schaller, N. C. 2000. Parallel computing to start the millennium. Proceedings of the thirty-first SIGCSE technical symposium on Computer science education, ACM publication, Vol. 32 Issue 1, pp. 65-69.
  17. Alaghband, G. and Jordan, H. F. 1994. Overview of the force scientific parallel language. Journal Scientific Programming, Vol. 3, No. 1.
  18. Amato, N. M. , Iyer, R. , Sundaresan, S. , and Wu, Y. 1996. A Comparison of Parallel Sorting Algorithms on Different Architectures. Technical Report 98-029, Department of Computer Science, Texas A&M University.
  19. Blelloch, G. E. , Leiserson, C. E. , Maggs, B. M. , Plaxton, C. G. , Smith, S. J. , and Zagha, M. 1991. A comparison of sorting algorithms for the Connection Machine CM-2. Annual ACM symposium on parallel algorithms and architectures, pp. 3–16.
  20. Li, H. and Sevcik, K. C. 1994. Parallel sorting by over partitioning. Proceedings of the sixth annual ACM symposium on parallel algorithms and architectures (SPAA'94), pp. 46–56.
  21. Rivest, R. L. , Shamir, A. , and Adleman, L. M. 1977. RSA algorithm. U. S. Patent 4,405,829.
  22. CUDA. 2014. http://en. wikipedia. org/wiki/CUDA (accessed on Feb 1, 2014).
  23. The 2D/3D heat equation. 2014. www. maths. bris. ac. uk/ ~marp/apde2/week3notes. pdf (accessed on Feb 1, 2014).
  24. Asaduzzaman, A. , Yip, C. M. , Kumar, S. , and Asmatulu, R. 2013. Fast, Effective, and Adaptable Computer Modelling and Simulation of Lightning Strike Protection on Composite Materials. IEEE SoutheastCon Conference 2013, Jacksonville, Florida.
  25. Lightning Strike Protection for Carbon Fiber Aircraft. 2914. White paper, Dexmet Corporation. URL: http://www. dexmet. com/1_pdf/LSP%20for%20Carbon %20Fiber%20Aircraft. pdf (accessed on Feb 1, 2014).
  26. An Introduction to Edge Detection: The Sobel Edge Detector. 2014. Generation5. http://www. generation5. org/content/2002/im01. asp (accessed on Feb 1, 2014).
Index Terms

Computer Science
Information Sciences

Keywords

CUDA/GPU technology multicore architecture OpenMP Open MPI parallel programming