CPE Undergraduate Student
Bryce is a 3rd year Computer Engineering undergraduate student at Cal Poly. In working on SiMPI Bryce believes that we can make difficult computing tasks more accessible for all. Bryce’s role in the project was designing the backbone infrastructure and the TCP/IP network interface with Andrii to allow SiMPI to work on large clusters as opposed to one local machine.
CS UNDERGRADUATE STUDENT
Harshit is a 3rd year Computer Science undergraduate student at Cal Poly. A staunch believer in technology’s potential to better the lives of those around him, he hopes to create a positive impact through developing products that affect the lives of everyday people. Harshit’s role in the project was focused towards writing linear algebra algorithms that efficiently distribute the calculation son the available process to help improve runtime efficiency.
SE UNDERGRADUATE STUDENT
Andrii is a Junior (3rd year) majoring in SoftwareEngineering at Cal Poly SLO with experience inenterprise-grade software development, full stack web development, and embedded systems. Andrii worked on development and integration of TCP/IP network interface to enable work on clusters and parallelized lower-upper matrix decomposition operation. Andrii is currently seeking internship and job opportunities.
First and foremost, we would like to thank our mentor, Dr Christian Eckhardt, for considering us for this wonderful opportunity. We firmly believe that his support and mentorship has played a big part in the success we’ve had with our project. We would also like to acknowledge Dr. Robert Crockett who is responsible for managing the SURP program smoothly and efficiently. Even in the midst of a global pandemic, his interactive sessions helped up remain motivated and focussed on achieving our goals and we think he is the reason that the program has been so successful even in a virtual format. Now last but not the least, we express our gratitude to Northrop Grumman for sponsoring our project and helping us with this opportunity. Their insight into the project was immensely useful and we hope we can connect with them further as we develop the project more..
Our Project Video
SiMPI - Simple Multi Processing Interface
This research project aimed at developing efficient parallel computing algorithms that efficiently solve complex linear algebra problems on a cluster with over 30 nodes each with multiple cores. The pre-existing libraries that offer similar functionality are very resource heavy and often sacrifice code simplicity to maximize operations. With SiMPI, we want to develop a lightweight complete alternative that is readable, simple and has a straightforward codebase.
Our aim is to attain 50-70% performance speed vs MPI. Project is built from the ground up by Cal Poly undergrads to help add simplicity to programs used for scientific research purposes.
One of the applications of linear algebra operations is a predictive modeling. The more complex the model, the more processing time it requires. SIMPI provides both an accessible tool to perform the calculation and to reduce time required for calculation through parallelization on cluster.
SIMPI vs COMPETITION
- Lightweight complete package solution for linear algebra operation
- Readable, simple, and straightforward codebase
- 50-70% performance speed goal vs other MPI solutions
- Build from the ground up by Cal Poly undergrads
OpenMP, MPI, others:
- Resource-heavy solutions
- relies on third-party libraries (Boost, ScaLapack)
- Code simplicity is sacrificed to maximize performance
One of the applications of linear algebra operations is a predictive modeling. The more complex the model, the more processing time it requires. SIMPI provides both an accessible tool to perform the calculation and to reduce time required for calculation through parallelization on cluster. The images below depict a visual example of heat distribution calculated with matrix multiplication.
- Multiple linear Algebra functions implemented
- TCP/IP networking layer implemented
- Matrix multiplication successfully tested on a cluster at Cal Poly Mixed Reality Lab
Work in Progress
- All linear algebra functions successfully tested
- Testing/Installing SIMPI on a supercomputer (cluster with more workstations)
Looking forward, we are excited to continue working on the project and attempt to further improve the efficiency and simplicity of our codebase. We want to connect with researchers in different fields and offer SiMPI as an alternative to heavy libraries and hope to use their feedback to provide a better product. We also want to add functionality that can handle additional complex math operations on a bigger cluster.