This project focuses on the development and implementation of the parareal algorithm in both sequential and parallel formats. The algorithm will be applied to the Lorenz Model of order 1 and 4, using both constant and adaptive time stepping.
- Implement Lorenz Model for order 1 and 4 using constant time stepping.
- Implement Lorenz order 4 solver with adaptive time stepping.
- Add support for Lorenz results visualisation.
- Study scipy.ode with constant and adaptive time stepping.
- Study the parareal algorithm.
- Implement the initial version of parareal in sequential.
- Compare different ode solvers and parareal on the Lorenz system.
- Study a parallel version of the parareal algorithm.
- Implement the parallel version of the parareal algorithm.
To get started with this project, clone the repository and install the required dependencies.
- Python 3.x
- Scipy
- Matplotlib (for visualization)
- mpi4py (for parallelisation)
-
Clone the repo
git clone https://github.com/master-csmi/2024-m1-parareal.git
-
Installation of required Python packages
To use the program and execute Jupyter notebooks, please follow the following procedure:
python3 -m venv .venv # <1> source .venv/bin/activate # <2> pip3 install -r requirements.txt # <3>
- Create a Python virtual environment
.venv
- Activate the virtual environment
.venv
- Installation of required Python packages
- Create a Python virtual environment
To execute MPI4py code in the terminal, you can follow these steps:
-
Ensure that you have installed MPI on your system.
-
Compile your MPI4py code using the following command:
mpiexec -n <number_of_processes> python your_code.py
Replace
<number_of_processes>
with the desired number of MPI processes you want to run. Replaceyour_code.py
with the source name code you want to run.