Week | Work | Assignee | Done? |
---|---|---|---|
Week3 (second half) | Create a checker to verify the validity of the program with information extracted at each timestep | Vincy | |
Implement parallelization algorithm over individual cells using shared address space model (dynamic vs static assignment) | Josh | ||
Week4 (first half) | Generate speedup graph with performance of sequential version and aforementioned implementation. Analyze differences in performance gain with dynamic and static assignment | Both | |
Implement parallelization algorithm over batches of cells using shared address space model (dynamic vs static assignment) | Vincy | ||
Week4 (second half) | Generate speedup graph with performance of sequential version and all parallelized implementations. Analyze differences in performance gain between parallelization strategies. | Josh | |
Implement parallelization algorithm over individual sections of the vessel using shared address space within each section and message passing between sections - potentially changing the data storage pattern | Both | ||
Week5 (first half) | Finish off the implementation and generate speedup graphs with the performance of sequential version and all parallelized implementations. Analyze differences in performance gain between parallelization strategies. | Both | |
Week5 (second half) | Create visualization for simulation | Both |
We have successfully implemented the initial sequential version of the simulation. This version processes data from a random text file, which is generated by a custom Python script, which sets up initial conditions such as cell positions and velocities. Our simulation then takes over and processes each timestep iteratively. During each timestep, the simulation performs multiple critical functions:
We might be slightly behind our goals and deliverables as the initial modeling process took us much more time than expected. However, given that the sequential version is completed, we do believe the process of trying different parallelization strategies should be more straightforward. At this point in time, we have realized the importance of performance as such a simulation requires a long time to process. We have also realized the relative insignificance of visualization. Therefore, we would like to shift our attention to testing different parallelization strategies. At the same time, we have also realized the inadequacy of using GPUs. Since the simulation process involves frequent collision checking. This potential creates divergence in data flow, which is inappropriate for using GPUs. Therefore, we have revised our goals and deliverables to the following:
If we end up having time to apply visualization, we will be showing a short video of blood cells moving through the blood vessel. In all cases, we plan to show speedup graphs comparing the performance of the different parallelization strategies. During the poster session, we will provide an analysis of those speedup graphs and go through the parallelization choices we made along the way.