The past February 11th I graduated: now I am formally a “doctor magister” in Computer Science. That sounds really, really weird to say but it really looks good when written! Anyway, it’s just a master degree.
My thesis work was an OpenCL based implementation of AES that, with a lack of fantasy, I called PAES (you can think about it as “Parallel AES” or “Paolo’s AES”). I really enjoyed working on PAES because of my passion for computer security and cryptography, the time spent over it passed by very fast. The result isn’t production ready at all because I used an AES reference implementation that followed the algorithm, while the most used AES implementations often refactor the standard algorithm in order to exploit machine’s performances at their best; on the other hand the result of my work is pretty remarkable because, thanks to OpenCL, PAES can run flawlessly both on CPUs and GPUs, exploiting all their cores, with a single source code. The main goal of this thesis was to gather knowledge both about OpenCL and multi/many-core architectures to be used by a joint project between Perugia’s University departments of Physics, Chemistry and Computer Science. The results are pretty encouraging: while OpenCL has its rough spots, it’s perfectly usable and can bring great results. Also, I happened to code in OpenCL while the AMD implementation, that I used to make PAES run on CPUs, was changing rapidly in order to catch up with the standard: this made my experience much harder than it should be now, with a better implementation available. I didn’t have particular problems from NVIDIA’s side instead (this strangely mirrors the situation that I have with the graphic drivers of my two Linux computers: the one with AMD/ATI is often a mess, while the NVIDIA’s one works like a breeze).
I had quite some fun during the thesis presentation thanks to an OpenCV-powered slide changer that I built for the occasion: it allowed me to change slide by showing a glove with a big green spot in the middle to my laptop’s webcam; a gimmick of doubtful usefulness but surely cool, in a geek way.
This was most likely the last step of my formal instruction, now I plan to dive right into the job-based life; on the other hand, I’ll never stop studying new things by myself, after 18 years of formal instruction I’m all but satiated, quite far away from the burnout that a lot of university students experience near the end of their career.