Giter Site home page Giter Site logo

peft's Introduction

PEFT: Predict Earliest Finish Time

Github Actions

A Python 3.6+ implementation of a heuristic DAG scheduling approach from

H. Arabnejad and J. G. Barbosa, "List Scheduling Algorithm for Heterogeneous Systems by an Optimistic Cost Table," in IEEE Transactions on Parallel and Distributed Systems, vol. 25, no. 3, pp. 682-694, March 2014. doi: 10.1109/TPDS.2013.57

IEEE Explore Link

Installation

Setting up a virtual environment first is recommended

After that, all necessary dependencies can be installed with pip install -r requirements.txt

Otherwise, the main dependencies are:

  • Python 3.6+ (uses literal string interpolation)
  • Matplotlib
  • Numpy
  • Networkx
  • Pytest (development dependency only)
  • nb_conda (only if using a conda environment & want jupyter notebook to use the right python version)

Finally, if you want it available as a local package for availability elsewhere on your system, it can be installed with pip install .

Command line Usage

Basic usage is given by python -m peft.peft -h

usage: peft.py [-h] [-d DAG_FILE] [-p PE_CONNECTIVITY_FILE]
               [-t TASK_EXECUTION_FILE]
               [-l {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [--showDAG]
               [--showGantt]

A tool for finding PEFT schedules for given DAG task graphs

optional arguments:
  -h, --help            show this help message and exit
  -d DAG_FILE, --dag_file DAG_FILE
                        File containing input DAG to be scheduled. Uses
                        default 10 node dag from Arabnejad 2014 if none given.
  -p PE_CONNECTIVITY_FILE, --pe_connectivity_file PE_CONNECTIVITY_FILE
                        File containing connectivity/bandwidth information
                        about PEs. Uses a default 3x3 matrix from Arabnejad
                        2014 if none given.
  -t TASK_EXECUTION_FILE, --task_execution_file TASK_EXECUTION_FILE
                        File containing execution times of each task on each
                        particular PE. Uses a default 10x3 matrix from
                        Arabnejad 2014 if none given.
  -l {DEBUG,INFO,WARNING,ERROR,CRITICAL}, --loglevel {DEBUG,INFO,WARNING,ERROR,CRITICAL}
                        The log level to be used in this module. Default: INFO
  --showDAG             Switch used to enable display of the incoming task DAG
  --showGantt           Switch used to enable display of the final scheduled
                        Gantt chart

If you don't have any particular DAG that needs scheduling, the canonical example schedule from Topcuoglu et al. can be generated by passing in no args

python -m peft.peft

With a generated Gantt chart available using

python -m peft.peft --showGantt

Testing

If Pytest is installed, tests can be executed simply by running pytest from the repository root directory

peft's People

Contributors

mackncheesiest 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.