is Íslenska en English

Lokaverkefni (Meistara)

Háskóli Íslands > Verkfræði- og náttúruvísindasvið > Meistaraprófsritgerðir - Verkfræði- og náttúruvísindasvið >

Vinsamlegast notið þetta auðkenni þegar þið vitnið til verksins eða tengið í það: http://hdl.handle.net/1946/35941

Titill: 
  • Titill er á ensku A refactoring catalogue and tool for refactoring C/C++ HPC code
Námsstig: 
  • Meistara
Útdráttur: 
  • Útdráttur er á ensku

    High-Performance Computing (HPC), or supercomputing, has become a big part of our daily life even though people might not be aware of it. The use of HPC is growing and the need for HPC is expected to keep growing. HPC code is typically written by domain experts who are not experienced in software engineering so when it is modified most often the complexity of it increases, losing readability and maintainability. One of the techniques developed to decrease this complexity is refactoring. Refactoring is a technique for improving the internal structure of software without changing its external behavior. It has been widely used for all kinds of software but for HPC code it is still evolving and different definitions of HPC refactoring have surfaced. This thesis discusses previous work on HPC refactoring and C/C++ refactoring and introduces a new definition of HPC refactoring which focuses not only on improving readability and maintainability but includes performance and portability as well. With this definition in mind a new catalogue for HPC refactoring is started along with implementing a semi-automated refactoring. The five refactorings in the catalogue are aimed at improving performance of HPC code written in C/C++ with detailed descriptions of how to apply them. The implemented refactoring demonstrates the advantages of semi-automated refactorings for their users by limiting the risks inevitably followed by code changes.

  • Ofurtölvuvinnsla (e. HPC) er orðinn stór hluti af okkar daglega lífi þó fólk átti sig mögulega ekki á því. Notkun ofturtölvuvinnslu hefur aukist og þörfin fyrir ofurtölvuvinnslu mun væntanlega aukast áfram. Ofurtölvuvinnslukóði er yfirleitt skrifaður af sérfræðingum sem hafa ekki mikla reynslu af hugbúnaðarverkfræði þannig að þegar kóða er breytt eykst flækjustig hans almennt einnig, sem hefur neikvæð áhrif á læsileika og viðhaldsþægni. Ein af aðferðunum sem hafa verið þróaðar til að lágmarka flækjustigið er endurþáttun kóða (e. refactoring). Endurþáttun er aðferð sem snýr að því að bæta innri byggingu hugbúnaðar án þess að breyta ytri hegðun hans. Þessi aðferð hefur mikið verið notuð fyrir allskonar hugbúnað en fyrir ofurtölvuvinnslukóða er hún enn í þróun og mismunandi skilgreiningar hafa komið fram. Í þessari ritgerð er fjallað um þá vinnu sem unnin hefur verið í sambandi við endurþáttun ofurtölvuvinnslukóða og C/C++ endurþáttun og kynnir til sögunnar nýja skilgreiningu á endurþáttun ofurtölvuvinnslukóða sem leggur ekki einungis áherslu á að bæta læsileika og viðhaldsþægni heldur einnig frammistöðu og flytjanleika (e. portability). Með þessa skilgreiningu í huga er ný skrá fyrir endurþáttun ofurtölvuvinnslukóða kynnt ásamt þróun hálf-sjálfvirkrar endurþáttunar. Fimm endurþáttanir eru í skránni en þær leggja áherslu á að bæta frammistöðu ofurtölvuvinnslukóða sem er skrifaður í C/C++ ásamt því að lýsa því í smáatriðum hvernig á að beita þeim. Sú endurþáttun sem þróuð er sýnir kostina sem hálf-sjálfvirkar endurþáttanir hafa fyrir notendur en þær takmarka áhætturnar sem óumflýjanlega fylgja breytingum á kóða.

Samþykkt: 
  • 8.6.2020
URI: 
  • http://hdl.handle.net/1946/35941


Skrár
Skráarnafn Stærð AðgangurLýsingSkráartegund 
HPC_refactoring_catalogue_and_tool.pdf1.67 MBOpinnHeildartextiPDFSkoða/Opna
Yfirlysing_HPC_Refactoring.pdf394.71 kBLokaðurYfirlýsingPDF