Giter Club home page Giter Club logo

flow's Introduction

flow

A 2D hydrodynamics mini-app

Purpose

This application solves Eulers equations using an explicit Lagrangian-Eulerian method, with directional splitting to handle multi-dimensionality. The purpose of the application is for performance evaluation on modern architectures.

Build

Before building the dependent flow application, it is necessary to clone the application into the arch project. The instructions can be found on the arch project README.

git clone [email protected]:uob-hpc/arch
cd arch
git clone [email protected]:uob-hpc/flow
cd flow

The flow build process is intended to be simple, and has been tested on a number of platforms.

make -j KERNELS=omp3 COMPILER=INTEL ARCH_COMPILER_CC=mpicc

The KERNELS option determines the particular kernel set that will be used when building the project. At this time the difference between the kernel sets is that they are written with different programming models. When you clone the repository there are multiple directories that contain duplicates of the core computational kernels, ported to different models and the name of the directory is the value to be used with the KERNELS option.

A number of other switches and options are provided:

  • DEBUG=<yes/no> - 'yes' switches off optimisation and adds debug flags
  • MPI=<yes/no> - 'yes' turns off any use of MPI within the application.
  • `DECOMP=<TILES/ROWS/COLS> - determines the decomposition strategy (Warning: this hasn't been very well tested yet).
  • The OPTIONS makefile variable is used to allow visit dumps, with -DVISIT_DUMP, and profiling, with -DENABLE_PROFILING.

Run

Upon building, a binary file will be output with the extension of the value of KERNELS. e.g. flow.omp3. You can run the application with:

./flow.omp3 flow.params

Configuration Files

The configuration files expose a number of key parameters for the application.

  • iterations - the number of outer timestep iterations the application will proceed through
  • dt - the timestep for the application
  • nx - the number of cells in the x-dimension
  • ny - the number of cells in the y-dimension
  • visit_dump - whether the application should output visit dumps of the result

TODO: Describe the problem and source descriptions in the parameter file.

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.