Giter Site home page Giter Site logo

moc's People

Contributors

gvallee avatar

Watchers

 avatar  avatar  avatar  avatar

moc's Issues

support rank-based OMP places with "vanilla" OpenMP

Add support to MOC to use generic (unmodified) OpenMP runtime, but define the OMP_PLACES value as a function of the MPI ranks (i.e., OMPI_PLACES defined in MOC_Init() before OpenMP initialized).

This should be enabled/disabled at compile time to avoid any unexpected interactions when using a modified OMP runtime (e.g., libomp).

NOTE: Focus on OpenMP threads (places) on "cores" use case first. Also, avoid NUMA case at first because we do not have hwloc/fine-grained info.

Target use cases (in order of interest/priority):

  • 1.a) 1 rank per physical node -> OpenMP threads (places) on cores
  • 2.a) 1 rank per core -> OpenMP threads (places) on cores
  • 3.a) 1 rank per NUMA node -> OpenMP threads (places) on cores
  • 1.b) 1 rank per physical node -> OpenMP threads (places) on hwthreads
  • 2.b) 1 rank per core -> OpenMP threads (places) on hwthreads
  • 3.b) 1 rank per NUMA node -> OpenMP threads (places) on hwthreads
  • 4.x) Future - 1 rank per GPU -> OpenMP threads (places) ???

Fix test compilation

For now, I am using a handwritten Makefile to compile mpi_omp_hello.c

CC=clang
CFLAGS=-fopenmp
MPI_COMPILE_FLAGS=$(shell mpicc --showme:compile)
MPI_LINK_FLAGS=$(shell mpicc --showme:link)

all: mpi_omp_hello

mpi_omp_hello: mpi_omp_hello.c
    $(CC) -I/home/gvh/projects/OMPIX/codes/install/llvm/include \
        -I/home/gvh/projects/OMPIX/install/pmix/include \
        -I/home/gvh/projects/OMPIX/install/moc/include \
        -L/home/gvh/projects/OMPIX/install/pmix/lib \
        -L/home/gvh/projects/OMPIX/install/moc/lib \
        $(MPI_COMPILE_FLAGS) $(CFLAGS) $(MPI_LINK_FLAGS) \
        -o mpi_omp_hello mpi_omp_hello.c -lpmix -lmoc

clean:
    rm -f mpi_omp_hello

Support Case1 - Ignoring GPUs

case1

1 MPI rank per core.

Basically for that one, we just need to find the best way to do this on Summitdev/summit and document it.

Put in place mechanism to switch between MOC modes

We want to be able to support two different contexts:

  1. The Open MP compiler is not modified and MOC performs static configuration of the environment through Open MP environment variables. Static mode.
  2. The Open MP compiler is modified and MOC coordinates MPI and Open MP. Dynamic mode.

Since these modes are not compatible, a configure/compile-time option is acceptable. Documentation is required.

tjn: setup build env on summitdev for "vanilla" omp case

Setup the build environment on Summitdev for the "vanilla" OMP (no modifications to OpenMP) case. This will require OpenMPI (libevent, pmix, ompi) and MOC (ompi, pmix) and a proper LLVM/Clang.

Note: Install into stf010 area.

  • libevent
  • pmix
  • ompi
  • moc (branch: tjn-myrank-place-vanilla)
  • llvm/clang (module load? or from source, see scripts)

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.