Parallelization of Level Set Functions Using Message Passing Interface Institute for Collaborative Biotechnologies Presenter Lab Mentor Faculty Advisor Eric Lee Mohammad Mirzadeh Frederic Gibou Contra Costa College Computer Science Computational Department of Applied Mechanical Engineering, Science Computer Science and Laboratory Mathematics (CASL)
Topics to be covered • What are we doing in the Computational Applied Science Laboratory (CASL)? • What is my project for this summer? • Serial and Parallel programming. • Message passing interface. • Development process. • Data and progress so far. • Conclusions and future work. Eric Lee 2
What are we doing in CASL? Navier Stokes Equation (General) Retrieved from http://www.cs.ucsb.edu/~fgibou/Home.html Eric Lee 3
What will I be doing? Problem Time! Parallel programming! Solution 1. Use message passing interface (MPI) to create a serial code that works with one processor. Goals 2. Extend the serial code to work with multiple processors (parallel code) Eric Lee 4
Serial and Parallel programming Processor 1 Code A Code A Processor 2 Serial Code A Programming Code A Processor 3 Code A Processor 4 A1 A2 A3 A4 Communication Network Parallel Programming P4 P1 P2 P3 with MPI Memory Memory Memory Memory Eric Lee 5
Texas Advanced Computing Center 6 Core CPU Memory Memory 6 Core CPU Communication Network P1 P2 P3 P4 Memory Memory Memory Memory One node Retrieved from http://www.tacc.utexas.edu/user-services/user-guides/lonestar-user-guide Eric Lee 6
What is message passing interface? • Message passing interface (MPI) is the industry standard for parallelizing code. • Common MPI commands: – MPI_Send – MPI_Recv MPI_Recv MPI_Send A A B B Eric Lee 7
Development Process C / C++ Parallelize code with MPI Eric Lee 8
What are Level Sets? Retrieved from http://en.wikipedia.org/wiki/Level_set_method Eric Lee 9
Level Set Simulation Eric Lee 10
Buggy simulation Eric Lee 11
Level set function with a velocity field Eric Lee 12
Partitioning of processor work Eric Lee 13
Conclusions and future work • Serial code is working properly! • Parallel code works with one processor (essentially a serial code). • Still need to get parallel code working with multiple processors. • Compare parallel code to serial code. Retrieved from http://www.tacc.utexas.edu/user-services/user-guides/lonestar-user-guide Eric Lee 14
Acknowledgments Mentor: Mohammad Mirzadeh Faculty Advisor: Frederic Gibou Institute of Collaborative Biotechnologies National Science Foundation Internships in Nanosystems Science, Engineering, and Technology (INSET) Eric Lee 15
Eric Lee 16
MPI Code Development Retrieved from https://computing.llnl.gov Eric Lee 17
Example of MatLab Code Eric Lee 18/10
Example of C++ Code • Filler Eric Lee 19/10
What are we doing in CASL? • We solve partial differential equations (PDEs) and use their solutions to simulate various physical phenomena! • What are PDEs? – Mathematical equations • What can we describe using PDEs? – Weather – Electricity and Magnetism – Fluid flow • Why is this important? – Saves money! • Allows us to run simulations without actually building anything. Eric Lee 20/4
Development Process Prepare Serial Code C / C++ Parallelize code with MPI Export to visual Errors? No Errors? Eric Lee 21
What is the difference between Serial and Parallel programming? Processor 1 Code A Code A Processor 2 What is Serial Code A Programming? Code A Processor 3 Code A Processor 4 Processor 1 Code A1 Code A2 Processor 2 What is Parallel Code A Programming? Code A3 Processor 3 Code A4 Processor 4 Eric Lee 22
Parallel programming Processor 1 Code A Code A Processor 2 What is Serial Code A Programming? Code A Processor 3 Code A Processor 4 Processor 1 Code A1 Code A2 Processor 2 A1 A2 What is Parallel Code A Programming? A3 A4 Code A3 Processor 3 Code A4 Processor 4 Eric Lee 23
Filler • Filler Eric Lee 24/2
Recommend
More recommend