Abstract
The computational sciences are generating an ever-increasing amount of data. This data needs to processed just as fast. The data comes from tomography’s, images of distant star systems, gene sequencing, 3D projections, or similar real-world structures. Processing the data normally includes computing several tensor products or solving other such linear systems. Since we are processing multiple gigabytes or even terabytes of data, we really want to utilize GPGPUs, with which we can process more than one calculation of data simultaneously.
In this thesis, I show several optimizations for the modular array-programming framework Bohrium. I look into already established ways of optimizing bytecode together with introducing extension methods, a way to call external libraries, for Bohrium. These extension methods are being automatically generated when Bohrium is being compiled or installed, thus we are able to link against different libraries depending on the runtime. I also discuss programmer productivity, a term which defines why it is important that the programmer is able to maintain their code and write new code.
With programmer productivity, we look at the programming language Ruby and implements a new front end for Bohrium using it. This front end grants the ability to produce fast array-programming code in Ruby. Lastly, and somewhat separate, I talk about a new Ruby framework for Communicating Sequential Processes. This framework makes it easy to emulate a CSP network with communications and is also producing fast results.
In this thesis, I show several optimizations for the modular array-programming framework Bohrium. I look into already established ways of optimizing bytecode together with introducing extension methods, a way to call external libraries, for Bohrium. These extension methods are being automatically generated when Bohrium is being compiled or installed, thus we are able to link against different libraries depending on the runtime. I also discuss programmer productivity, a term which defines why it is important that the programmer is able to maintain their code and write new code.
With programmer productivity, we look at the programming language Ruby and implements a new front end for Bohrium using it. This front end grants the ability to produce fast array-programming code in Ruby. Lastly, and somewhat separate, I talk about a new Ruby framework for Communicating Sequential Processes. This framework makes it easy to emulate a CSP network with communications and is also producing fast results.
Original language | English |
---|
Publisher | Niels Bohr Institute, Faculty of Science, University of Copenhagen |
---|---|
Publication status | Published - 2018 |