The time has come! After a training week in Barcelona, I arrived in Novo Mesto (Slovenia). First things first…
I left Barcelona with beautiful memories. The training week was an occasion to network with new people and to build some team spirit. We spent our time together, had an official PRACE photo & video session, attended a strong training in parallel computing and visualization… among other activities too long to list here. Eventually we all had to separate and spread across Europe to put into practice the passion we all have in common: high performance computing.
I have been in Novo Mesto for a few days now and the atmosphere is nice and calm. Novo Mesto is a small city 70 km away from Ljubljana and is divided into two main parts by the river Krka. Slovenia reminds me a lot of Romania and it’s like being back home, so to speak. We are still in the middle of the first week so I hadn’t got the chance to see the whole city. But everything is reachable by foot and I’ve got all I need. I am staying at a student dorm, which is only a 20 minutes walk from the faculty. The weather is really hot but fortunately the temperature in my room is okay. The cool thing is that life is not so expensive and the food is really good.
Some words about the project. I will be working at the Faculty of Information studies. I met on Monday with my mentor, Janez Povh, and we started right away since I was already familiar with the literature. The project is Parallel boundary point method. The boundary point method is an iterative algorithm that solves semi-definite programs. What is semi-definite programming? If you are familiar with linear programming, the semi-definite approach is not difficult to grasp. Basically we look for a positive semi-definite matrix that optimizes a given function, subject to a certain number of linear constraints. My task is to port a Matlab code into a C++ parallel version. State of the art? I managed to recode the method in C++ quickly thanks to the Armadillo C++ library. Armadillo is a linear algebra library and its API is similar to Matlab. I was previously acquainted with Eigen, but eventually chose Armadillo for the project since it is very fast . In fact, Armadillo integrates with BLAS and LAPACK libraries. Moreover, if you link it against a high-speed replacement of BLAS (I chose OpenBLAS) you will experience further improvements. Now the interesting and hard part begins: I need to enable parallelization. The main bottleneck of the algorithm is the computation of a spectral decomposition of a symmetric matrix in every iteration. I will start from there and will be busy for a while, I believe.
Some concluding remarks: from the time of the application to when SoHPC actually started you can only have an idea about what the programme and PRACE look like. Yes, PRACE is a partnership that aims to enable research and computing infrastructures across Europe. But later on you discover that PRACE and the SoHPC are actually made of people. People that make things happen and that put effort in their activities. So I am really glad to be part of it. I will leave my first blog entry with a photo of the MareNostrum cluster at Barcelona Supercomputing Center together with a question: how is a supercomputer different from the human brain? I suggest John von Neumann’s book The computer and the brain to find out 🙂