Rubus: A compiler for seamless and extensible parallelism

Guardado en:
Detalles Bibliográficos
Publicado en:PLoS One vol. 12, no. 12 (Dec 2017), p. e0188721
Autor principal: Muhammad Adnan
Otros Autores: Aslam, Faisal, Nawaz, Zubair, Syed Mansoor Sarwar
Publicado:
Public Library of Science
Materias:
Acceso en línea:Citation/Abstract
Full Text
Full Text - PDF
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!

MARC

LEADER 00000nab a2200000uu 4500
001 1973447161
003 UK-CbPIL
022 |a 1932-6203 
024 7 |a 10.1371/journal.pone.0188721  |2 doi 
035 |a 1973447161 
045 2 |b d20171201  |b d20171231 
084 |a 174835  |2 nlm 
100 1 |a Muhammad Adnan 
245 1 |a Rubus: A compiler for seamless and extensible parallelism 
260 |b Public Library of Science  |c Dec 2017 
513 |a Journal Article 
520 3 |a Nowadays, a typical processor may have multiple processing cores on a single chip. Furthermore, a special purpose processing unit called Graphic Processing Unit (GPU), originally designed for 2D/3D games, is now available for general purpose use in computers and mobile devices. However, the traditional programming languages which were designed to work with machines having single core CPUs, cannot utilize the parallelism available on multi-core processors efficiently. Therefore, to exploit the extraordinary processing power of multi-core processors, researchers are working on new tools and techniques to facilitate parallel programming. To this end, languages like CUDA and OpenCL have been introduced, which can be used to write code with parallelism. The main shortcoming of these languages is that programmer needs to specify all the complex details manually in order to parallelize the code across multiple cores. Therefore, the code written in these languages is difficult to understand, debug and maintain. Furthermore, to parallelize legacy code can require rewriting a significant portion of code in CUDA or OpenCL, which can consume significant time and resources. Thus, the amount of parallelism achieved is proportional to the skills of the programmer and the time spent in code optimizations. This paper proposes a new open source compiler, Rubus, to achieve seamless parallelism. The Rubus compiler relieves the programmer from manually specifying the low-level details. It analyses and transforms a sequential program into a parallel program automatically, without any user intervention. This achieves massive speedup and better utilization of the underlying hardware without a programmer’s expertise in parallel programming. For five different benchmarks, on average a speedup of 34.54 times has been achieved by Rubus as compared to Java on a basic GPU having only 96 cores. Whereas, for a matrix multiplication benchmark the average execution speedup of 84 times has been achieved by Rubus on the same GPU. Moreover, Rubus achieves this performance without drastically increasing the memory footprint of a program. 
610 4 |a University of the Punjab 
651 4 |a Lahore Pakistan 
651 4 |a Pakistan 
653 |a International conferences 
653 |a Parallel processing 
653 |a Benchmarks 
653 |a Java 
653 |a Rubus 
653 |a Economic 
653 |a Microprocessors 
653 |a Electronic devices 
653 |a Mobile computing 
653 |a Programming languages 
653 |a Parallel programming 
653 |a Cores 
653 |a Graphics processing units 
653 |a Personal computers 
653 |a Debugging 
653 |a Computers 
653 |a Processors 
653 |a Information technology 
653 |a Central processing units--CPUs 
653 |a Software 
653 |a Computer industry 
700 1 |a Aslam, Faisal 
700 1 |a Nawaz, Zubair 
700 1 |a Syed Mansoor Sarwar 
773 0 |t PLoS One  |g vol. 12, no. 12 (Dec 2017), p. e0188721 
786 0 |d ProQuest  |t Health & Medical Collection 
856 4 1 |3 Citation/Abstract  |u https://www.proquest.com/docview/1973447161/abstract/embedded/6A8EOT78XXH2IG52?source=fedsrch 
856 4 0 |3 Full Text  |u https://www.proquest.com/docview/1973447161/fulltext/embedded/6A8EOT78XXH2IG52?source=fedsrch 
856 4 0 |3 Full Text - PDF  |u https://www.proquest.com/docview/1973447161/fulltextPDF/embedded/6A8EOT78XXH2IG52?source=fedsrch