With hardware performance no longer following Moore’s law, software optimization becomes more important. In this paper, we discuss parallel programming, which is one way to optimize software. However, writing parallel code is considered more difficult than writing sequential code. There is often a specific framework to be used to write parallel code for each type of parallel hardware. Skeleton programming frameworks are one way to reduce the number of parallel frameworks that a user needs to know. Skeleton programming frameworks implement high-level functions such as Map and Reduce that the user can customize. SkePU is one such framework. In order to understand the viability of SkePU compared to platform-specific frameworks, a performance analysis is performed. For the performance analysis, workloads were selected from the high-performance computing benchmarks Rodinia and PolyBench. The original programs written in CUDA and OpenMP are then compared performance-wise to an equivalent SkePU-implementation. There is also a code understandability survey between CUDA, OpenMP, and SkePU. SkePU performs best in the understandability survey. The observed difference between the frameworks, however, is not statistically significant. When execution times are compared, SkePU performs comparably to less optimized programs. SkePU is outperformed by hand-optimized code. The sample size for hand-optimized code is small and skewed due to algorithmic differences.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:liu-189148 |
Date | January 2022 |
Creators | Tedhamre, Erik |
Publisher | Linköpings universitet, Programvara och system |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | English |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0018 seconds