Since 1998 I’m working in the fields of parallel processing and high performance processing. Currently I work at LUPS (Laboratory of Ubiquitous and Parallel Systems) and I center my research on parallel programming interfaces and scheduling strategies for multithreading environments. I’m also working on scheduling intensive processing applications on Grid/Cloud Computing, taking into account energy-aware heuristics.
- Current and former students.
- Work with me (Portuguese, only).
Looking for a research subject in multithreading programming? Pick one from this list and contact me if you want a partner or an advisor.
- Programming interface: If you need to implement a parallel program, you need to choose the best suitable programming tool for your problem and exploit at the best its resources. To do this you need to study the popular, and the not so popular too, multithread programming environments in order to understand the expression power of different approaches and to idenfy the programming tool that better represent a (class of) application(s). Examples of projects:
- To reproduce benchmark suites (such as Cowichan, SPEC, SPLASH-2 and PARSEC) in different programming tools;
- To introduce in a programming tool a library of parallel skeletons;
- To propose a new programming interface to an execution environment.
- Execution environment: The runtime of modern multithreaded programming tools, usually, include a scheduling support to improve some performance index (such as execution time, memory or energy consumption). To develop efficient strategies is a real challenge. Examples of projects:
- To identify the overheads at execution time of runtimes based on dynamic list scheduling strategies;
- To extends the usage of list scheduling on dynamic irregular programs;
- To introduce energy-aware heuristics on list scheduling based strategies;
- To develop non-blocking data structures and/or algorithms to implement runtime environments.
- Applications: If you have a suitable parallel language providing an efficient execution, you are able to develop an application. Just do it. If haven’t access to this ultimate programming tool, you will need to do your best. Examples of projects
- Real word problems: Physic, Bioinformatics, Meteorology Computational Chemistry, Computational Materials Science, Petroleum/Gas/Water Reservoir Modelling, Big Data, Your Own Problem (probably the most exciting one) etc;
- Soft-computing: Deals with imprecision, uncertainty, partial truth, and approximation to achieve practicability, robustness and low solution cost.