An Application Programming Interface for HighPerformance Distributed Computing
Jahanbakhsh Farahmand Mokarremi, Ashkan Hanif · 2013
This master thesis was performed at Lindahl Lab at Science for Life Laboratory (SciLifeLab), located in Stockholm, Sweden. The need of compute resources is increasing and the speed of a single computer is not enough for data intensive computations. Distributed computing has been developed to improve computations of such tasks by distributing them to other machines. There are many platforms that are implemented for this purpose. Copernicus is such a platform that provides the availability to distribute computationally intensive tasks. The current Copernicus API handles only distribution of entire applications and there is no support to distribute sections of code in Copernicus. In this paper we provide a general API design and a Python implementation of it for how to distribute sections of a code on Copernicus. The implementation of the API handles only Python code but it is possible to extend to other languages with the help of Python wrappers. It also abstracts the learning threshold for a new Copernicus user, especially for those that are not computer scientists or people with little knowledge in programming. Referat API for distribuerade berakningar Detta examensarbete utfordes pa Science for Life Laboratory (SciLifeLab), pa Lindahl Lab avdelning, som ligger i Stockholm. Behovet av datorresurser okar och hastigheten av en enda dator ar inte tillrackligt for dataintensiva berakningar. Distribuerade berakningar har utvecklats for att forbattra berakning av sadana arbeten genom att distribuera dem till andra maskiner. Det finns manga plattformar som har implementerats for detta andamal. Copernicus ar en sadan plattform som ger tillgang till distribuering av berakningsintensiva arbeten. Den nuvarande Copernicus API hanterar endast distribution av ett program i helhet och det finns inget stod for att distribuera delar av kod i Copernicus. I denna rapport tillhandahaller vi ett generellt API-design och dess implementation i Python for hur man distribuerar delar av en kod i Copernicus. Implementationen av APIet hanterar endast Python-kod, men det ar mojligt att utvidga det till andra sprak med hjalp av Python wrappers. Detta minskar aven bort inlarningstroskeln for en ny Copernicus-anvandare, speciellt for dem som inte ar dataloger eller personer med lite kunskap inom programmering.