Vectorization of the Jacobi method with single- and multiple right-hand sides
(2022) In Bachelor's Theses in Mathematical Sciences NUMK11 20212Mathematics (Faculty of Sciences)
Centre for Mathematical Sciences
- Abstract
- Vectorization has been an important consideration for scientific com-
puting performance for a long time. Early super computers were designed
around vectorization, the so called ”vector computers”, but recent trends
point toward favouring other computer architectures, and vector comput-
ers are much more rare than they used to be. Nonetheless, vectorization
still lives on to a smaller extent in modern computers, and it is important
to make full use of these for optimal performance. Here we will investigate
some options for implementing vectorized code, with various implemen-
tation schemes. Our method of choice is the Jacobi method, an iterative
method known for it’s excellent parallelization potential. The level of
performance... (More) - Vectorization has been an important consideration for scientific com-
puting performance for a long time. Early super computers were designed
around vectorization, the so called ”vector computers”, but recent trends
point toward favouring other computer architectures, and vector comput-
ers are much more rare than they used to be. Nonetheless, vectorization
still lives on to a smaller extent in modern computers, and it is important
to make full use of these for optimal performance. Here we will investigate
some options for implementing vectorized code, with various implemen-
tation schemes. Our method of choice is the Jacobi method, an iterative
method known for it’s excellent parallelization potential. The level of
performance gains varied greatly between implementations, from being
slightly slower to having the expected optimal performance. We will go
into why we think the results are so varied, an important example being
the level of non-contiguous memory accesses. Nonetheless, our successful
implementations highlight the great potential importance of considering
vectorization when implementing performance-critital software. (Less) - Popular Abstract (Swedish)
- Att effektivisera program som löser komplexa problem har länge varit ett av målen inom beräkningsvetenskapen. I denna kandidatuppsats så undersöker vi ett sätt att göra program mer effektiva, och det är med hjälp av vektorisering. Detta är en metod som tidigt i beräkningsvetenskapen var central för att göra program mer effektiva. Senare blev andra former av parallelisering mer central, men det finns forfarande stöd för denna teknik i dagens datorer. I detta arbete undersöker vi olika sätt att vektorisera en viss matematisk metod, där vi har valt ha jakobi metoden i fokus. Detta är en matematisk metod som har väldigt bra potential för parallelisering och vektorisering. Vi använder oss av programmerings språket C++ och använder oss av... (More)
- Att effektivisera program som löser komplexa problem har länge varit ett av målen inom beräkningsvetenskapen. I denna kandidatuppsats så undersöker vi ett sätt att göra program mer effektiva, och det är med hjälp av vektorisering. Detta är en metod som tidigt i beräkningsvetenskapen var central för att göra program mer effektiva. Senare blev andra former av parallelisering mer central, men det finns forfarande stöd för denna teknik i dagens datorer. I detta arbete undersöker vi olika sätt att vektorisera en viss matematisk metod, där vi har valt ha jakobi metoden i fokus. Detta är en matematisk metod som har väldigt bra potential för parallelisering och vektorisering. Vi använder oss av programmerings språket C++ och använder oss av biblioteken DUNE, VCL och Vc för att implementera vår vektoriserad kod. Vi sedan jämför mellan våra implementationer, och undersöker vad som gör en viss implementation snabbare eller långsammare än andra. Utifrån dessa resultat så ger vi också potentiella förbättringar som kan göras, och vad som kan undersökas i framtida verk. (Less)
Please use this url to cite or link to this publication:
http://lup.lub.lu.se/student-papers/record/9092529
- author
- Paaso, Patrik LU
- supervisor
- organization
- alternative title
- Vektorisering av Jacobi-metoden med enskilda samt multipla högersidor
- course
- NUMK11 20212
- year
- 2022
- type
- M2 - Bachelor Degree
- subject
- keywords
- C++, Vectorization, SIMD, DUNE, VCL, Vc, Jacobi method, Jacobi iteration, discrete Poisson's equation, Stationary iterative methods, Computational science, Optimization, Numerical analysis
- publication/series
- Bachelor's Theses in Mathematical Sciences
- report number
- LUNFNA-4040-2022
- ISSN
- 1654-6229
- other publication id
- 2022:K13
- language
- English
- id
- 9092529
- date added to LUP
- 2022-09-27 08:09:41
- date last changed
- 2024-04-15 16:36:37
@misc{9092529, abstract = {{Vectorization has been an important consideration for scientific com- puting performance for a long time. Early super computers were designed around vectorization, the so called ”vector computers”, but recent trends point toward favouring other computer architectures, and vector comput- ers are much more rare than they used to be. Nonetheless, vectorization still lives on to a smaller extent in modern computers, and it is important to make full use of these for optimal performance. Here we will investigate some options for implementing vectorized code, with various implemen- tation schemes. Our method of choice is the Jacobi method, an iterative method known for it’s excellent parallelization potential. The level of performance gains varied greatly between implementations, from being slightly slower to having the expected optimal performance. We will go into why we think the results are so varied, an important example being the level of non-contiguous memory accesses. Nonetheless, our successful implementations highlight the great potential importance of considering vectorization when implementing performance-critital software.}}, author = {{Paaso, Patrik}}, issn = {{1654-6229}}, language = {{eng}}, note = {{Student Paper}}, series = {{Bachelor's Theses in Mathematical Sciences}}, title = {{Vectorization of the Jacobi method with single- and multiple right-hand sides}}, year = {{2022}}, }