Understanding the basic principles
During my first three weeks at the Jülich Supercomputing Centre (JSC) the material was mainly introductory to many different and interesting topics.
I was firstly introduced to the topic of processors. I got myself familiar with the main architecture and i understood that the performance of the processors are measured by the clock rate and by how many clock cycles it requires to execute one instruction.
Continuing through my training, memory hierarchy and the importance of cache memory was studied. A bench-marking exercise was the first one that i got myself involved to and that included comparing the memory allocated for a program against the bandwidth. The exercise had two purposes, one to understand that parallel programming is way faster than normal coding and secondly to observe that once the program memory becomes very large and cache runs out then the time required for the execution of a program drops dramatically.
At last i have also got a good grip on understanding how the networking plays a very important role on the performances and i was introduced to a lot of numerical methods and solvers. It enlightened me that different methods suit for different cases. The final deduction out of this introduction was that everything is a trade-off between high speed performance and accuracy. A good code should have a good balance between these two.
I wanna also thank my supervisors that have been very supportive and helping through the project up to now.