How to promote High Performance Computing ?

I had this discussion with one of my Ph.D. advisors some months ago when we talked about correctly using the computers we had then (dual cores), and I had almost the same one in my new job here: applied maths (finite differences, signal processing, …) graduate students are not taught how to use current computers, so how could they develop an HPC program correctly?

I think it goes even further than that, and it will be a part of this post. What I see is that trainees and newly-hired people (to some extent myself included) lack a lot of basic Computer Science knowledge, and even IT knowledge.
Continue reading How to promote High Performance Computing ?

Book review: Programming Collective Intelligence: Building Smart Web 2.0 Applications

The book description was really appetizing: Machine Learning applied to the Internet, so it should be easy to understand, and Python as the mean to compute. Unfortunately, contrary to what I saw in different reviews, I was not pleased with the book, and here is why.
Continue reading Book review: Programming Collective Intelligence: Building Smart Web 2.0 Applications

Book review: Fundamentals of Geophysics

This is the first time I will review a book on something I’m not familiar with at all. I’ve started now for more than two months a new job related to geophysics, and I had to catch up with my colleagues.
I’ve stopped studying geology ten years ago, so this is a review from someone who is learning geophysics and who wants to have a quick and global look on the different fields of geophysics.
Continue reading Book review: Fundamentals of Geophysics

Exposing an array interface with SWIG for a C/C++ structure

Sometimes, a C or C++ array structure must be used in Python, and it’s always better to be able to use the underlying array to do some Numpy computations. To that purpose, Numpy proposes the array interface.

I will now expose an efficient way to use SWIG to generate the array interface and exposing the __array_struct__ property.
Continue reading Exposing an array interface with SWIG for a C/C++ structure

[Updated] I used the latest MKL with Numpy and…

I’m trying to use the MKL with some programs and libraries, but I encountered something really strange and I’m not alone.
First, what is i_free ? Accoding to Intel, it’s their way to handle memory allocation and deallocation. They are only pointers to the actual memory functions so as to let the user decide if he wants a custom memory handler. Since 10.0.3, Intel changed their model, and the trouble begins.
Continue reading [Updated] I used the latest MKL with Numpy and…

Monitoring CPU usage in multithreaded applications

As I have to parellize some programs developed in my new lab, I monitor CPU usage during thier execution. I do not usually need MPI to optimize them (although sometimes it is needed), only OpenMP, which means I can track /proc/ to get CPU and instantaneously memory usages.

So I wrote a small script that can be used by anyone for this purpose. I’ll explain how it works now.
Continue reading Monitoring CPU usage in multithreaded applications

Finally over !

For four years I’ve been researching the intersting field of manifold learning. Indeed, I’ve defended my PhD thesis last friday and now I have a PhD in electronics, electrotechnics and automatism in the university Louis Pasteur in Strasbourg, France. Those years after my engineering school allowed me to read and to learn a lot, but I’m still glad those years are over.

During these years, I enjoyed looking for new solutions for my problems, and it helped me discover some technologies I didn’t really master (like Python but also C++, parallel computing, … now I can use some of them safely). So this is my advice to every new PhD student: read a lot, and not only articles or books in your field, but also in the other fields, like the tools you may use (Computer Science mainly) so that you can use the best of them (it takes some time, but you’ll be rewarded in the end).

And before I forget: read http://phdcomics.com/ (my favourite character being Mike, although since he’s doing a post-doc, we don’t see him much :().

Book review: An Introduction to Design Patterns in C++ with Qt4

Contrary to what the title may hint to, this book is an introduction to C++ and the Qt library. And in the process, the authors tried to teach some good practices through design patterns. So if you’re a good C++ or Qt programer, this book is not for you. If you’re a beginner, the answer is in my review.

Continue reading Book review: An Introduction to Design Patterns in C++ with Qt4

Book review: Beautiful Code: Leading Programmers Explain How They Think

I got this book from a partnership between http://www.developpez.com/ and O’Reilly. Thanks to both of them.

What defines “beautiful code”? How do people think a beautiful code should look like? This isn’t a simple question to answer, so this book asked several lead programmers (Ruby, Python, C, C++, Java, Perl, …) some beautiful code they wrote or they encountered. And if some want to answer “think about a robust, simple to extend code and that will be it” (and I would be one of them before I read the book), there are some code that would not fit this profile.
Continue reading Book review: Beautiful Code: Leading Programmers Explain How They Think