Optimize and develop MOLCAS, leading software in Quantum Chemistry.
Division of Theoretical Chemistry offers bachelor and master projects, related to a computational code named MOLCAS (molcas.org). MOLCAS is a leading software in the field of Quantum Chemistry. It is developed worldwide and used in more that 300 Universities.
The proposed projects do not require any knowledge of chemistry, but is focused on improvements or development of new features in MOLCAS. The work and the defence of the project will be done by collaborative supervision of Theoretical Chemistry and Computer Science.
MOLCAS code is written mostly in FORTRAN, but contains C codes for system related parts, while scripting part is written in Perl and Python.
Below are some possible directions of the projects (which can be made at bachelor or master level).
1. Parallelization including GPU parallelization.
MOLCAS is a parallel code in the major parts, and it is heavily dependent on Linear Algebra (BLAS/LAPACK) libraries. The project includes benchmarking MOLCAS with different variants of Linear Algebra libraries, detecting and eliminating the bottlenecks for parallel execution. Requirements: knowledge of parallel programming, FORTRAN/C
2. Development of efficient I/O.
As all codes in quantum chemistry, MOLCAS operates with large amount of data, which can only be stored at disk. We recently developed an interlayer, which allows to keep some data in memory to increase the efficiency of I/O. The project is to investigate the performance improvement, and develop a packing of the storing data. Requirements: C
3. Implementation of standard data formats in Quantum Chemistry.
Standard data formats simplifies transferring data between different computational programs and between computational codes and GUI. Right at this moment different communities in the field develop standards to XML/JSON tagging of data, used or produced by quantum chemical codes. The focus of the project is developing such interface in MOLCAS, and creating databases for computed data. Requirements: C, mark up, databases
4. Development of GUI for MOLCAS.
MOLCAS is interfaced to several graphical codes, most of them have been written 'in house'. There are new features, which are very demanding by the community: including input generation and remote submitting of computational jobs. Requirements: C/C++, GTK, wxWidgets