Giter Club home page Giter Club logo

mapa's Introduction

Multi-Accelerator Pattern Allocation (MAPA) framework

The goal of this project is to study multi-GPU allocation/scheduling policies on different multi-GPU architecture systems.

Cloning the repository

$ git clone --recursive https://github.com/socal-ucr/MAPA

Steps to run

  1. Install GCC >= 9.3

  2. Source environment variables. $ source set_env.sh

  3. $ make.

  4. Run Jobs.

    a. Generate JobFile. $ ./generateJobs JOBFILE

    b. Run simulations individually.

    $ ./MapaSim POLICY_NAME SYSTEM_ARCH JOBFILE

    POLICY_NAME can be baseline, topoAware, greedy, or preserve.

    SYSTEM_ARCH can be dgx-v, dgx-p, summit, torus-2d, or cubeMesh-16. For more information, refer to Supported System Architectures.

  5. To run real jobs (MapaReal), Caffe must be compiled with GCC <= 5.4.

    $ ./MapaReal POLICY_NAME SYSTEM_ARCH JOBFILE

  6. To run simulations or real runs for all policies on an architecture. $ ./launch-jobs.sh [--real | --sim] SYSTEM_ARCH JOBS_FILE

Supported System Architectures (SYSTEM_ARCH)

Real Runs: DGX-V, DGX-P, Summit

Simulation Runs: DGX-V, DGX-P, Summit, Torus-2d, CubeMesh-16.

Custom accelerator topologies and allocation policies

If you intend to add your own accelerator topologies in GpuTopology.hh:

  1. Specify the topology connections like shown here
  2. Specify the weights of each edge as shown here

Custom policies can be added to MapaPolicies.hh.

mapa's People

Contributors

kiran-r avatar

Watchers

James Cloos avatar Daniel Wong avatar  avatar

mapa's Issues

Baseline should include NUMA-aware allocations

Like if you get two jobs of 2 GPU and 3 GPU, they would each be completely in their own island taking up 0,1 and 4,5,6. - @wongdani

if numGPU < availableGPUin0123
    pick smallest ID from 0,1,2,3
else if numGPU < availableGPUin4678
    pick smallest ID from 4,5,6,7
else pick smallest ID

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.