Qt-based fast number crunching software: voluntary, Master, PhD or post-doc position(s)/job offered
I am seeking one or more interested programmers to join an interdisciplinary international research group (leader in Trento, Italy) on a quite interesting scientific problem of applied physics/materials science, requiring:
- a flexible GUI capable of displaying and handling large amount of data (openGL visualization and live interaction)
- a small embedded computer algebra system for model building/optimization
- a very fast engine for parallel computing (multithreading/multicore/multi CPU and GPU computing) based on some new algorithms that we are developing.
- some new ideas to handle the computing tasks/jobs more efficiently (e.g. queuing, COW, memoization)
- portability (Windows, *nix)
The computing kernel might run on a cluster or on a large supercomputer with the GUI acting as front end/model building on a Windows or *nix machine
Qt together with C++/assembler/Fortran/CUDA are definitely the tools that will be employed. Let's see if you are skilled in writing a flexible GUI or able to write very fast code and to squeeze all juice out of the available CPU/GPU. Final goal is a free software for the scientific community, some scientific publications in international journals and (hopefully) real-time processing.
Any type of help is welcome. Temporary positions for students, on interesting aspects of the project, are available
I am not an expert in Qt or C/C++, but I was involved in a automotive Qt project for about 1.5 years and I loved every step of the project!! I was involved both on the framework and the HMI part of the project! As for the C/C++, I am continuously working and growing on this part for about 3 years now.
On the OpenGL side, I started learning it in this spring and it is fun and amazing what it can be done with it!
The next step on my must know list would be for sure the CUDA technology. I am so trilled by the parallel programming and for sure CUDA offers a great of doing powerful real time processing.
So I am really interested in how will you divide the team and all the tasks, how big is the project (time, resources) and in what stage is it! And one more question: why not using OpenCL instead of CUDA ?