IT Sample Case Study: The Ideal HPC Programming Language
Eugene Loh, in his article, “The ideal HPC programming language,” explores the fundamental features of a programming language that make it ideal for high productivity computing (HPC) programming and concludes that FORTRAN is satisfactorily adequate for HPC programming. Loh (2010) has noted that some programming challenges arise, not due to the shortcomings of a programming language, but rather due to other factors such as inadequacy of the programmer and limitations of the hardware and compiler. Nonetheless, Loh (2010) contends that some of the challenges are posed by weaknesses in a programming language, and as such, new programming for HPC is necessary.
Proponents of a fresh programming language for HPC systems often claim that a new language would result in a significant reduction in the amount of code written for HPC systems but the reduction can still be accomplished with existing languages, more so using FORTRAN. The study results conducted by Suns Microsystems (Loh, 2010) reveal that one of the main reasons for bloated code is programmer incompetence.
The studies, which entailed recoding a number of HPC programs and benchmarks using FORTRAN, showed that a number of bloated source codes can be reduced significantly by observing best programming practices. Factors such as verifiability, programmability, readability and maintainability of code were considered in the studies. The same degree of source code reduction that is pegged to a fresh programming language for high productivity computing was achieved by rewriting existing HPC programs using FORTRAN.
Actually, the source code rewritten using FORTRAN turned out to be significantly smaller than what is anticipated with a new HPC programming language. In addition, the source code rewritten in FORTRAN caused significant improvement in performance of high-productivity computing systems used. The results of the studies highlight that the reasons for large or bloated source codes is not so much due to weaknesses of the programming language in supporting development of the HPC programs and benchmarks, but rather due to incompetence on the part of the programmers.
The main components of high-productivity computing are parallelization and performance. Experts believe that a feasible approach for achieving high-productivity computing is exploiting the idea of parallelization, which involves vectorization, loop unrolling, cache blocking, multithreading and data distribution (Loh, 2010). In that regard, therefore, the volume of source code often has little or no effect on the performance of an HPC system.
Additionally, significant reduction of source code volume might not necessarily result in enhanced performance of the HPC system. Loh (2010) explained that indeed there is low performance issues linked to existing HPC applications but the causes of this low performance is often the limitations of existing compilers and hardware. As a solution, Loh (2010) suggests that experts focus more on optimization of the hardware and compilers.
Developing a fresh programming language for HPC may not be the solution to apparent challenges associated with computing systems. According to Loh (2010), the aspect of parallelization that is difficult to achieve using existing languages, such as FORTRAN, is also difficult to achieve with a new programming language. For instance, data distribution, an aspect associated with parallelization, is not easy to accomplish through an application’s source code.
The workings of both of the shared-memory and distributed-memory systems are the main sources of limitations in enabling data distribution and hence parallelization. Loh’s (2010) view is that a fresh programming language for HPC is unlikely to succeed in enhancing implementation of parallelization through source codes. According to him, shifting focus concurrency as opposed to data distribution as the means of boosting parallelization in high-productivity computing is more feasible than developing a fresh programming language for developing HPC systems.
Indeed, programmers can easily write source codes that implement concurrency, even by using a programming language such as FORTRAN. As Loh (2010) notes, a fresh programming language would not have a great impact in regard to enabling concurrency, which is one way of implementing parallelization in high-productivity computing systems. Loh (2010) further observes that emphasis on concurrency alone (and not data distribution) would allow both the production of highly efficient HPC systems and source codes that are highly maintainable.
The article also highlights a number of other factors that cause bloated source codes in HPC applications. An often apparent factor is the need to accommodate numerous vendors in the market and enhance the HPC application’s portability; this often involves bundling the HPC applications with additional codes and libraries. Additionally, the existence of bugs and faults in available compilers sometimes necessitates HPC systems developers to include additional source code to solve the problem.
Loh (2010) also views scientists’ mentality as part of the reason or problem of bloated source codes for HPC applications: scientists often fancy expressing low-level concepts, which are associated with algorithmic complexity and hence large source codes.
In high-performance computing, arrays are use in concurrency implementation. Arrays are utilized in data-parallel loops. These loops are simply procedures (subroutines) that are called concurrently…
Are you struggling with a difficult case study? Now you can relax! First of all, we are glad to offer you this case study sample written by our professional authors to help all the struggling students out there. We remind you, however, that any usage of the information without proper acknowledgments is prohibited. If you have no idea how to cope with all the amount of assignments you have, just place an order and receive a perfect case study sample written specially for you. Reading such sample is way more effective than desperately searching the Internet for a glimpse of useful information. No more hesitation, place your order and improve your grades dramatically!