Parallel computing methods for solving 2D heat transfer with explicity, finite-volume schemes using Fortran and MPI.
- Serial, Single-Block Heat Conduction Solver
- Solve heat conduction numerically on a single, non-uniform, 2D grid
- Use one processor
- Serial, Multi-Block Solver Intitialization
- Initialize solver solution for single processor with grid decomposed into sub-domains (blocks)
- Write block configuration files to restart solution
- Serial, Multi-Block Solver
- Modify solver to solve heat conduction on multiple blocks
- Use ghost nodes to store neighbor information
- Parallel, Multi-Block Solver Initialization
- Initialize solver solution for multiple processors with grid decomposed into sub-domains
- Distribute blocks to processors to achive equal load balancing
- Save configuration files for each processor to restart solution
- Parallel, Multi-Block Solver
- Modify solver to solve heat conduction on multiple blocks with multiple processors
- Include MPI code for multiple processors
GNU Fortran:
'gfortran -o outname progname.f90'
Open MPI (parallel, optimized):
'mpif90 -o outname -O3 progname.f90'
Using project specific makefile:
'./make.sh'
Homebrew tends to install open-mpi without fortran support. To Fix:
'brew reinstall openmpi --build-from-source'
MPI Parallel Run:
'mpirun -n NCPUS main > "a.out"'
Batch Job Submission on HPC1:
'sbatch run.sh'
alias fortmain='gfortran -o main main.f90'
alias q="squeue"
alias qq="squeue -u lhalstro"
alias qdel="scancel"
alias qsub="sbatch"
'scp username@remoteaddress:path/to/file path/to/copy/to'
use -r to copy folders, i.e.:
'scp -r [email protected]:mae267/projects/pj5/Results projects/ucd/mae267/projects/pj5/.'
'ctrl+k,u' (l for lower)