项目作者: VANDAL

项目描述 :
Modular, flexible, cross-platform workload profiling and characterization
高级语言: C++
项目地址: git://github.com/VANDAL/prism.git
创建时间: 2018-03-02T15:32:48Z
项目社区:https://github.com/VANDAL/prism

开源协议:BSD 3-Clause "New" or "Revised" License

下载


Prism

BSD licensed
Build Status
Docs Status
Experimental

The intuitive, event-driven application profiling and characterization framework.

Prism Overview


Install

:boom: C++14 compiler support is required :boom:
:boom: cmake v3 required :boom:
See CentOS 7 Support

  1. git clone https://github.com/vandal/prism
  2. cd prism
  3. mkdir build && cd build
  4. cmake ..
  5. make -j

The executable will be put in build/bin. It can be run in place, or the folder can be moved to an install location.

What is it?

Uses a straight-forward intermediate representation (IR) for system architecture and application behavior studies.
Prism provides the dynamic behavior of an application with 4 event primitives:

  • Compute - IOPs & FLOPs
  • Memory - data access
  • Synchronization - task-level create, join, sync, et al
  • Context - markers for basic blocks, subroutines, instructions, etc
  • Control Flow support is pending community demand

Each event has specific attributes that are accessible via the Prism API

Example Usage

  • Valgrind is the default frontend for generating events, if no option is specified
  • SynchroTraceGen backend processing events into a special event trace

$ bin/prism --backend=stgen --executable=./myprogram -with --args

Users supply at least 2 arguments to Prism:

  • the backend analysis tool used to process events
  • the application

A third frontend argument can be supplied

  • --frontend=FRONTEND
  • --frontend=dynamorio is experimental

Platform support

Linux OSX/macOS Windows
64-bit CentOS 7 on x86_64 untested not supported
YMMV: ARM

CentOS 7 Support

  1. sudo yum install epel-release
  2. sudo yum install centos-release-scl
  3. sudo yum install cmake3 devtoolset-7
  4. scl enable devtoolset-7 bash
  5. # use cmake3 and build and usual

See Software Collections for details.

Documentation

Read the docs