Software Contexts for Locality

A flexible library for running multiple parallel codes concurrently.

What is it for ?

SwLoc is an open source library for resource partionning to containerize different parallel codes without modification

Software Stack with SwLoc
What does it provide ?
  • - Lightweight isolation
  • - Ressources negotiation
  • - Flexible thread placement
Typical usage
  • addRun multiple libraries concurrently
    TODO
  • addTight cost coupling
    TODO
How does it work ?
  • addControlled environment

    SwLoc executes each part of code in a controlled environment in order to manage what this part of the application sees about the machine, where threads can be placed and more.

    To achieve this goal, SwLoc need to catch some function calls and requires to set the environment variable LD_PRELOAD before the execution of the application :

    LD_PRELOAD=/path/to/SwLoc/libswloc.so ./myApp

    In this case, the link editor will first use the SwLoc functions before the real functions in libraries.

  • addHwLoc

    HwLoc is a common, famous and most-used library to get informations about computer topology, to bind threads or choose a NUMA node.

    SwLoc supports the calls to the HwLoc functions and returns a modified topology of the machine. It only shows the computing resources available for each kernels.

  • addRuntimes

    SwLoc also supports Runtimes like OpenMP or Intel TPB.

  • addComparison with others
Download

Do you want to use or just to try SwLoc ?
Click here to access to the Git repository !