Performance improvement of software simulating cutting processes: Improvement of runtime performance for software that simulates cutting processes with Python, Cython and C++
2024 (English)Independent thesis Basic level (degree of Bachelor), 10 credits / 15 HE credits
Student thesisAlternative title
Förbättring av prestanda för mjukvara som simulerar beskärningsprocesser : Förbättring av körtids prestanda för mjukvara som simulerar beskärningsprocesser med Python, Cython och C++ (Swedish)
Abstract [en]
The purpose of this thesis work was to improve the runtime performance of software that simulates cutting processes. Software named #Cut is currently being developed in KTH by the Department of Production Engineering. It is an open source software that simulates cutting processes. Simulations in #Cut are currently taking too long, especially for complex simulations. This is due to #Cut being implemented in Python. The duration for performing a simulation varies, with runtimes measured from a few minutes up to a few days. There is therefore an interest in improving the runtime performance, which is achieved by implementing certain parts of #Cut in either Cython or C++. The runtime performance was improved when a data structure was implemented in Cython, but not with C++. A variable time step algorithm improved the runtime performance of #Cut but yielded inaccurate simulation results. Further studies can be performed to improve the algorithm to yield more accurate simulation results. The data structure can be implemented in an octree rather than a quadtree.
Abstract [sv]
Syftet med examensarbetet var att förbättra körtidsprestandan för mjukvara som simulerar beskärningsprocesser. Mjukvaran, dvs. #Cut, utvecklades av institutionen för produktionsutveckling (IPU) på KTH. #Cut är en öppen mjukvara som används för att simulera beskärningsprocesser. Nackdelen med #Cut är att simulationer utförs för långsamt, vilket är ett problem för komplexa simulationer. Beroende på simulation, kan körtid mätas till några minuter eller upp till några dagar. Detta beror på att #Cut i ett tidigt stadium utvecklades i Python för att skapa en prototyp. Det finns ett intresse att förbättra #Cut:s körtidsprestanda, vilket i detta examensarbete utförs genom implementation av utvalda moduler för #Cut i språken Cython ochC++. Resultatet av examensarbetet var att körtidsprestandan förbättrades i #Cut. En annan implementation av datastrukturen förbättrade körtidsprestandan med språket Cython, men inte med C++. En ny implementerad algoritm förbättrade körtidsprestandan, däremot erhöll simulationer mindre noggranna resultat. Framtida studier kan utföras för att utveckla en algoritm som erhåller mer noggranna resultat. Data strukturen kan implementeras som ett octree i stället för ett quadtree.
Place, publisher, year, edition, pages
2024. , p. 70
Series
TRITA-CBH-GRU ; 2024:328
Keywords [en]
Quadtree, algorithm, cutting process, Cython, C++, Python, benchmark
Keywords [sv]
Quadtree, algoritm, beskärningsprocess, Cython, C++, Python, benchmark
National Category
Computer Sciences
Identifiers
URN: urn:nbn:se:kth:diva-354714OAI: oai:DiVA.org:kth-354714DiVA, id: diva2:1904964
Subject / course
Computer Technology and Software Engineering
Educational program
Bachelor of Science in Engineering - Electrical Engineering
Supervisors
Examiners
2024-10-142024-10-102024-10-14Bibliographically approved