MS Computer Science & Information Systems

three computer monitors with binary code

Advanced Study: Parallel Computing

As part of the degree requirements, students complete a research project or theses in an area of interest to them. This enhances their expertise in an area.

Parallel Computing is the study, design, and implementation of algorithms in a way as to make use of multiple processors to solve a problem. The primary purpose is the solve a problem faster or a bigger problem in the same amount of time by using more processors to share the work. Wikipedia states, "Parallel computing is a type of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved at the same time." (1).

Traditionally, parallel computing was considered an advanced area of Computer Science. Parallel systems were big, expensive, and rare. Only a small percentage of software developers were creating parallel programs. With the movement into multi-core computers, all general purpose computers manufactured nowadays are multi-core. Furthermore, parallel systems are easily created by building a cluster of computers.

As the need for software developers and engineers continue to increase dramatically, employment of software developers is projected to grow 30 percent from 2010 to 2020, which is much faster than the average for all occupations. Employment of application developers is projected to grow 28 percent, and employment of systems developers is projected to grow 32 percent (2). Computer World's hiring survey recognizes programming and application development as the top IT skill for 2013, with 60 percent of companies planning to hire development employees over the next year (3).

Expert Faculty

Students who want to specialize in parallel computing can study independently with faculty who actively research and publish in the field, and who also have significant hands-on knowledge of parallel computing. Several research topics in this area include: parallel computing, parallel algorithms, parallelizing compilers, parallel programming tools, GPU computing.

  • Dr. Clayton S. Ferner, Professor of Computer Science
    • Barry Wilkinson and Clayton Ferner, "The Suzaku Pattern Programming Framework," in the proceedings of the 6th NSF/TCPP Workshop on Parallel and Distributed Computing Education (EduPar-16), held in conjunction with 30th IEEE International Parallel & Distributed Processing Symposium (IPDPS 2016), Chicago, IL May 23, 2016.
    • C. Ferner, B. Wilkinson, and B. Heath (2014), "Using Patterns to Teach Parallel Computing,” in the proceedings of the Fourth NSF/TCPP Workshop on Parallel and Distributed Computing Education (EduPar-14), held in conjunction with the 28th IEEE International Parallel & Distributed Procession Symposium (IPDPS 2014), Phoenix, AR, May 19, 2014.
    • C. Ferner, B. Wilkinson, B. Heath, “Toward using higher-level abstractions to teach Parallel Computing”, in the proceedings of the Third NSF/TCPP Workshop on Parallel and Distributed Computing Education (EduPar-13), held in conjunction with the 27th IEEE International Parallel & Distributed Procession Symposium (IPDPS 2013), Boston, MA, May 20, 2013.
    • B. Wilkinson, J. Villalobos, and C.S. Ferner, "Pattern programming approach for teaching parallel and distributed computing", in the proceedings of The 44th ACM Technical Symposium on Computer Science Education (SIGCSE2013), Denver, CO, March 8, 2013.
    • P. Jerry Martin and C.S. Ferner, "Independent loop suppression to reduce message size for message-passing code", in The 2009 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA'09 ), WORLDCOMP'09, Las Vegas, NV, June 13-16, 2009.
    • P. Jerry Martin and C.S. Ferner, "Suppressing independent loops in packing/unpacking loop nest to reduce message size for message-passing code", in the Proceedings of the The 2007 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA'07), WorldComp'07, Las Vegas, NV, June 15-18, 2007.
    • C.S. Ferner, "Revisiting communication code generation algorithms for message-passing systems", International Journal of Parallel, Emergent and Distributed Systems (JPEDS), 21(5):323--344, October 2006.

Student Capstone Projects Related to Parallel Computing

Students get the opportunity to pursue individual projects in the form of a Capstone. The Capstone is completed with the guidance, expertise, and support of faculty, usually over the course of a year. In many cases, industry professionals participate on the committee, or the Capstone project solves a real-world problem.

References

  1. Wikipedia, Parallel Computing. (visited December 14, 2015).
  2. Bureau of Labor Statistics, U.S. Department of Labor, Occupational Outlook Handbook, 2012-13 Edition, Software Developers: Job Outlook. (visited May 13, 2013).
  3. 10 Hot IT Skills for 2013, (2012) ComputerWorld (visited May 13, 2013).