October 8th, 2007, 2:16 pm
of courseMost basic idea with MPI:Domain Decomposition:You have a grid, you split up grid into N roughly equal partitions. Give each processors one of these partitions of domain.You have some (finite-difference) scheme which updates the quantites at each lattice site. This scheme requires some information from neighboring lattice sites. Near the edges of each processor's local data, that processor will need data from an adjacent processor's memory to update the quantity at that site. You figure out what you need to do the updating, then have the adjacent processor send that data to this processor using MPI. optimizations:at every time step- first post non-blocking send and receives for the boundary data needed from other processors- While the data transfer is happening, then compute everything that you can that does not depend on this data.- post an mpi wait which will not return untill the data has been recieved.- compute quantities that depend on the boundary data- go to next time step Things to keep in mind:- minimize number of MPI send and receives, maximize size of each send and recieve.
Last edited by
gradstudent12 on October 7th, 2007, 10:00 pm, edited 1 time in total.