Git Product home page Git Product logo

ds3's Introduction


© Copyright 2021 ASU All rights reserved.
  This file contains confidential and proprietary
    information of DASH-SoC Project.

1. Installation Guide :

In order to install required software, please refer to Installation_guide.txt file.

2. How to run the program?

Create a configuration file which contains file names for DASH-SoC resources (SoC.*.txt) and tasks (job_*.txt) and scheduler name (e.g., min_execution_time). Please refer to config_file.ini file for more information about the format.

2.1 Job File (config_Jobs folder)

Create a Task list in a text file (job_*.txt) using the key word add_new_tasks followed by the task list.

The format: add_new_tasks $num_of_tasks (int)
            $task_name (string) $task_id (int) $task_predecessors (list)

Example: The following lines add a new task with ID=0, and predecessor for this task is task with ID=2 (empty list means there is no dependency)

add_new_tasks 1
scrambler 0 2

2.2 SoC Configuration File (config_SoC folder)

Create a Resource list in a text file (SoC.*.txt) using the key word add_new_resource followed by the resource.

The format: add_new_resource $resource_type (string)  $resource_name (string) $resource_id (int) $capacity (int) $num_of_supported_functionality (int) $DVFS_mode (string)
    $functionality_name (string) $execution_time (float)
        opp $frequency (int - MHz) $voltage (int - mV), defines the Operating Performance Points (OPPs) with frequency and voltage tuples
        trip_freq $trip_1 $trip_2 $trip_3 ..., defines the frequencies that are set at each trip point if throttling is enabled. "-1" means that the frequency is not modified
        power_profile $frequency $power_1 $power_2 $power_3 ... $power_max_capacity
        PG_profile $frequency $power_1 $power_2 $power_3 ... $power_max_capacity

Example: The following lines add a new CPU with name=P1, ID=0, capacity=1 and that can run 3 different tasks using "performance" DVFS mode

add_new_resource resource_type CPU resource_name P1 resource_ID 0 capacity 1 num_supported_functionalities 3 DVFS_mode performance
opp 1000 1150
trip_freq -1 -1 -1
power_profile 1000 0.1
PG_profile 1000 0.1
scrambler 12
reed_solomon_encoder 15
bpsk_modulation 18

2.3 Simulator Configuration File

Adjust the configurations in config_file.ini as needed.

2.4 Running the Simulator

Finally, run DASH_Sim_v0.py to start the simulation. Please be sure that all the files listed below are in your file directory

3. File Structure

├── DASH_Sim_v0.py               : This file is the main() function which should be run to get the simulation results.
│   ├── clusters.py              : This file contains the information about the clusters in the SoC.
│   ├── common.py                : This file contains all the common parameters used in DASH_Sim.
│   ├── config_file.ini          : This file contains all the file names and variables to initialize the DASH_Sim
│   ├── CP_models.ini            : This file contains the code for dynamic scheduling with Constraint Programming.
│   ├── DASH_Sim_core.py         : This file contains the simulation core that handles the simulation events.
│   ├── DASH_Sim_utils.py        : This file contains functions that are used by DASH_Sim.
│   ├── DASH_SoC_parser.py       : This file contains the code to parse DASH-SoC given in config_file.ini file.
│   ├── DTPM.py                  : This file contains the code for the DTPM module.
│   ├── DTPM_policies.py         : This file contains the DVFS policies.
│   ├── DTPM_power_models.py     : This file contains functions that are used by the DVFS mechanism and PEs to get performance, power, and thermal values.
│   ├── job_generator.py         : This file contains the code for the job generator.
│   ├── job_parser.py            : This file contains the code to parse jobs given in config_file.ini file.
│   ├── processing_element.py    : This file contains the process elements and their attributes.
│   ├── scheduler.py             : This file contains the code for scheduler class which contains different types of scheduler.
│   ├── config_SoC/SoC.*.txt     : These files are the configuration files of the Resources available in DASH-SoC.
│   └── config_Jobs/job_*.txt    : These files are the configuration files of the Jobs.
└── ...

4. Dynamic Adaptive Scheduling Framework (DAS)

Dynamic Adaptive Scheduling (DAS) Framework aims to choose between a fast, simple, and low-overhead scheduler and a slow, complex, high-quality scheduler at run-time using the decisions given by the DAS preselection classifier. DAS framework is evaluated using five real-world applications, namely, range detection, WiFi transmitter, WiFi receiver, pulse doppler applications, and a proprietary industrial application (App-1). DAS preselection classifier is trained using 40 different workloads simulated in DS3. These workloads are mixes of the five real-world applications. You can see the distribution of application instances in the following figure. More details about the DAS framework is given in the paper titled "DAS: Dynamic Adaptive Scheduling for Energy-Efficient Heterogeneous SoCs". DASH_workload_distribution Figure: The distribution of number and type of application instances in the 40 workloads used for evaluation of the DAS framework. Each workload consists of 100 jobs and the stacked bar for each workload denotes the number of instances of each type of application. For instance, workload-6 (WKL-6) uses 50 instances of WiFi-Transmitter and 50 instances of App-1, and workload-31 (WKL-31) uses 20 instances of each type.

ds3's People

Contributors

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