Giter Site home page Giter Site logo

lukas0025 / paraller_fdtd_mpi Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 12.94 MB

MPI Project to PPP at BUT FIT (Master)

HTML 2.34% Shell 4.60% Python 5.60% CMake 1.19% C++ 54.38% C 31.78% Makefile 0.11%
fdtd fdtd-simulator hdf5 hpc hpc-clusters mpi p2p rma visit

paraller_fdtd_mpi's Introduction

Finite-difference time-domain method (FDTD) MPI Implementation

Thermal simulation akcelarated on Barbora (IT4I.cz) supercomputer

This repository contains implementation of MPI parallel FDTD on 2D plane with support for 1D and 2D decomposition. Implementing P2P and RMA mode and support hybrid mode with OMP. Output file can by save using seq method (Save on root rank) or par method using HDF5 library. Output files (H5 format) can be opend using VISIT tool (https://visit-dav.github.io/visit-website/). Exmaple outputs of this program is in file outputs.

output exmaple

Author: Lukáš Plevač [email protected]
Semetral project to PPP at BUT FIT

Setup HPC

Load modules using ml.

#!/bin/bash

ml purge # purge loaded modules
ml CMake/3.22.1-GCCcore-11.2.0 intel/2021b HDF5/1.12.1-intel-2021b-parallel
ml Score-P/8.0-iimpi-2021b # pro profilovani

Build project

Simply usimg make it make build dir and setup build using cmake

make

Run project

Usage:
Mandatory arguments:
  -m [0-2]    mode 0 - run sequential version
              mode 1 - run parallel version point-to-point
              mode 2 - run parallel version RMA
  -n          number of iterations
  -i          material HDF5 file
Optional arguments:
  -t          number of OpenMP threads (default 1)
  -o          output HDF5 file
  -w          disk write intensity (every N-th step)
  -a          air flow rate (values in <0.0001, 0.5> make sense)
  -d          debug mode (copare results of SEQ and PAR versions and print result)
  -v          verification mode (copare results of SEQ and PAR versions)
  -p          parallel I/O mode
  -r          render results (with -d or -v) into *.png image.
  -g          Use 2D decomposition instead of 1D.
  -b          batch mode - output data into CSV format
  -h          batch mode - print CSV header

example run:

# generate material file input_data_1024.h5 for run
cd scripts && ./generate_data.sh && cd ..
# run parralel solver on 16 mpi processes
mpirun -np 16 ./build/ppp_proj01 -m 1 -n 78125 -i scripts/input_data_1024.h5 -d -r hello.png -g

Setup git on Barbora

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/git

paraller_fdtd_mpi's People

Contributors

lukas0025 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.