GithubHelp home page GithubHelp logo

mperrinel / sst-core Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sstsimulator/sst-core

0.0 1.0 0.0 18.32 MB

SST Structural Simulation Toolkit Parallel Discrete Event Core and Services

Home Page: http://www.sst-simulator.org

License: Other

Makefile 0.64% Shell 0.05% M4 2.33% C++ 95.20% C 0.13% Python 0.26% CSS 0.59% Objective-C 0.81%

sst-core's Introduction

SST

Structural Simulation Toolkit (SST)

Copyright (c) 2009-2020, National Technology and Engineering Solutions of Sandia, LLC (NTESS)


The Structural Simulation Toolkit (SST) was developed to explore innovations in highly concurrent systems where the ISA, microarchitecture, and memory interact with the programming model and communications system. The package provides two novel capabilities. The first is a fully modular design that enables extensive exploration of an individual system parameter without the need for intrusive changes to the simulator. The second is a parallel simulation environment based on MPI. This provides a high level of performance and the ability to look at large systems. The framework has been successfully used to model concepts ranging from processing in memory to conventional processors connected by conventional network interfaces and running MPI.


Visit sst-simulator.org to learn more about SST.

See Contributing to learn how to contribute to SST.

sst-core's People

Contributors

allevin avatar dogquixote avatar ericvh avatar feldergast avatar gvoskuilen avatar hughes-c avatar jaganh avatar jeacook avatar jleidel avatar jonas25007 avatar jpvandy avatar jwang323 avatar jwilso avatar luisfnqoliveira avatar mikepfrank avatar mjleven avatar mperrinel avatar mrasquinha avatar nmhamster avatar otuncer avatar rhendry avatar scogginsnl avatar shavvn avatar sst-autotester avatar stkaplan avatar vjleung avatar

Watchers

 avatar

sst-core's Issues

Create Statistic object in the python File

Modify the C++/Python in the simulation to permit to the statistic objects to exist in the Python like Components and Subcomponents.

  statObj = comp.enableStatistic("sst.StatVtk")
  statObj.addParams(...)

Make StatisticGroup more sensibly in the python

Modify the C++/Python in the simulation to the StatisticGroup more sensibly in the python

group = sst.StatisticGroup(output=...)
....
statObj = comp.enableStatistic("sst.StatVtk")
group.append(StatObj)

Update Components/ port drawing

The Components should draw themselves as boxes. The ports should draw themselves as lines between components. The Components will just stay the same color the whole time for now.

Get example up and running

import sst
sst.setProgramOption("timebase", "100as")
import sst.macro
from sst.macro import Interconnect

swParams = {
  "name" : "snappr",
  "router" : {
    "seed" : "42",
    "name" : "dragonfly_minimal",
  },
  "link" : {
    "bandwidth" : "1.0GB/s",
    "latency" : "100ns",
    "credits" : "8KB",
  },
  "logp" : {
    "bandwidth" : "1GB/s",
    "hop_latency" : "100ns",
    "out_in_latency" : "100ns",
  }
}

appParams = {
  "allocation" : "first_available",
  "indexing" : "block",
  "name" : "mpi_ping_all",
  "launch_cmd" : "aprun -n 80 -N 2",
  "sleep_time" : "1us",
  "message_size" : "2KB",
}

memParams = {
 "name" : "snappr",
 "channel_bandwidth" : "0.7GB/s",
 "num_channels" : "2",
 "latency" : "10ns",
}

nicParams = {
  "name" : "snappr",
  "injection" : {
    "bandwidth" : "1.0GB/s",
    "latency" : "50ns",
    "mtu" : "1024",
    "credits" : "12KB",
  },
  "ejection" : {
    "latency" : "50ns",
  }
}

nodeParams = {
  "memory" : memParams,
  "nic" : nicParams,
  "app1" : appParams,
  "name" : "simple",
  "proc" : {
    "frequency" : "2GHz",
    "ncores" : "4",
  }
}

topoParams = {
 "name" : "dragonfly",
 "geometry" : "[4,3]",
 "h" : "6",
 "inter_group" : "circulant",
 "concentration" : "4",
}

params = {
  "node" : nodeParams,
  "switch" : swParams,
  "topology" : topoParams,
}

ic = Interconnect(params)
ic.build()

sst.enableStatisticForComponentType("macro.snappr_switch",'xmit_stall',{"type":"sst.AccumulatorStatistic"})
sst.setStatisticOutput("sst.statOutputCSV")

Implement a non-field stat output for Exodes

class VTKStat {
  const std::vector<TrafficEvent>& getEvents() const;
}

void
ExodusOutput::output(StatisticBase* base, bool endOfSim)
{
  VTKStat* vtk = dynamic_cast<VTKStat>(base);
  for (const TrafficEvent& event : vtk->getEvents()){
   ... do work
  }
}

Get geometry information from parameters

Statistic(BaseComponent* comp, const std::string& statName,
              const std::string& statSubId, Params& statParams) :

For a VTKStat the statParams need to give us the geometry/shape information for that particular instance of the stat. Usually every stat gets the same parameters. We need to make sure the Python input allows each statParams object to be unique.

Remove port from VTK Statistic

Since the component name and its port are already exposed to the Statistic classes, it is not necessary to provide it again by the templated parameter of the statistic:

  • Remove the port parameter of the StatVTK class
  • Use the getStatSubId() method of a statistic as a uniq ID of the traffic_event

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.