Giter VIP home page Giter VIP logo

array_benchmark's Introduction

This repository includes a very simple script to profile EnzoArray.

EnzoArray is the current implementation. EnzoArrayN has a preliminary modification to allow for negative indexing.

The benchmarking compares the amount of time to access all elements in an (N,N,N) for various array types. The benchmarked cases are:

  • traditional pointer
  • boost::multi_array using the traditional bracket notation [][][]
  • boost::multi_array using the operator() method (where a container is passed)
  • EnzoArray
  • EnzoArrayN

This benchmark requires the cpuset utility and root access. The instructions for running the benchmark are as follows:

  1. modify N_REPS (number trials for each benchmark case and value of N) and RESERVED_THREAD (the cpu id to use for benchmarking)
  2. Call "make" at the terminal.
  3. Execute setup.sh as root (Note: the script turns off address space randomization and sets the scaling governor to performance - I don't think it successfully restores these to their initial values)
  4. Run plot.py to plot the timings

The current plot saved to plot.pdf uses the minimum times to run each benchmark case take from 100 repetitions for each N. The top panel shows how the exectution of all cases scales with N, while the bottom panel shows the ratio of each case to the timings for the traditional pointer case

array_benchmark's People

Contributors

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