Giter Site home page Giter Site logo

chatterbug's Introduction

Chatterbug v1.0

A suite of communication-intensive proxy applications that mimic commonly found communication patterns in HPC codes. These codes can be used as synthetic codes for benchmarking, or for trace generation using OTF2.

List of Proxy Applications:

  • pairs: all pairs multi-pairs message exchange
  • ping-ping: multi-pairs message exchange (user specified pairs)
  • spread: k-neighbor communication within rankspace neighborhood
  • stencil3d: structured 3D near neighbor pattern like that of jacobi/halo
  • stencil4d: structured 4D near neighbor pattern like that of jacobi/halo
  • subcom-a2a: FFT-style subcommunicator-based all to all communication
  • unstr-mesh: unstructured mesh communication pattern

OTF2 Tracing

For OTF2 tracing, see notes here: https://github.com/LLNL/tracer/blob/master/README.OTF

Reference

Any published work that utilizes this software should include the following reference:

Nikhil Jain and Abhinav Bhatele. Chatterbug communication proxy
applications suite. https://github.com/LLNL/chatterbug. LLNL-CODE-756471.

Release

Copyright (c) 2018, Lawrence Livermore National Security, LLC. Produced at the Lawrence Livermore National Laboratory.

Written by:

     Nikhil Jain <[email protected]>
     Abhinav Bhatele <[email protected]>

LLNL-CODE-756471. All rights reserved.

This file is part of Chatterbug. For details, see: https://github.com/LLNL/chatterbug. Please also read the LICENSE file for the MIT License notice.

chatterbug's People

Contributors

bhatele avatar nikhil-jain avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

chatterbug's Issues

Unable to run subcom2d-coll due to MPI_Abort condition

I cant run subcom2d-coll.C due to a logical error while checking input values. The source uses an '||' when it should be '&&'. When using the correct number of arguments (ie 7 or 8), the condition always resolves to 'true' and falls into the MPI_Abort sequence.

Basic documentation?

Hiya! I'm setting this up in a Kubernetes operator, and I can't seem to find basic usage documentation. The docstrings of the code are somewhat helpful, but not having domain knowledge, I don't what what is good for different parameters (e.g., for test cases vs production). I found this page https://proxyapps.exascaleproject.org/app/chatterbug/ but the readthedocs page is 404. Thanks for the help!

Chatterbug fails to build on Ubuntu (with Spack)

mpicxx -O3  -o ping-ping.x ping-ping.C
pairs.C: In function 'int main(int, char**)':
pairs.C:128:84: error: cannot convert 'int*' to 'ompi_request_t**' for argument '7' to 'int MPI_Irecv(void*, int, MPI_Datatype, int, int, MPI_Comm, ompi_request_t**)'
     MPI_Irecv(recvbuf, msg_size, MPI_CHAR, partner, 0, MPI_COMM_WORLD, &requests[0]);
                                                                                    ^
pairs.C:129:84: error: cannot convert 'int*' to 'ompi_request_t**' for argument '7' to 'int MPI_Isend(const void*, int, MPI_Datatype, int, int, MPI_Comm, ompi_request_t**)'
     MPI_Isend(sendbuf, msg_size, MPI_CHAR, partner, 0, MPI_COMM_WORLD, &requests[1]);
                                                                                    ^
pairs.C:137:49: error: cannot convert 'int*' to 'ompi_request_t**' for argument '2' to 'int MPI_Waitall(int, ompi_request_t**, MPI_Status*)'
     MPI_Waitall(2, requests, MPI_STATUSES_IGNORE);
                                                 ^
ping-ping.C: In function 'int main(int, char**)':
ping-ping.C:91:85: error: cannot convert 'int*' to 'ompi_request_t**' for argument '7' to 'int MPI_Isend(const void*, int, MPI_Datatype, int, int, MPI_Comm, ompi_request_t**)'
       MPI_Isend(sendbuf, msg_size, MPI_CHAR, paired, 0, MPI_COMM_WORLD, &requests[0]);
                                                                                     ^
ping-ping.C:92:85: error: cannot convert 'int*' to 'ompi_request_t**' for argument '7' to 'int MPI_Irecv(void*, int, MPI_Datatype, int, int, MPI_Comm, ompi_request_t**)'
       MPI_Irecv(recvbuf, msg_size, MPI_CHAR, paired, 0, MPI_COMM_WORLD, &requests[1]);
                                                                                     ^
ping-ping.C:102:51: error: cannot convert 'int*' to 'ompi_request_t**' for argument '2' to 'int MPI_Waitall(int, ompi_request_t**, MPI_Status*)'
       MPI_Waitall(2, requests, MPI_STATUSES_IGNORE);
                                                   ^
Makefile:21: recipe for target 'pairs.x' failed
make[1]: *** [pairs.x] Error 1
make[1]: Leaving directory '/tmp/ci/spack-stage/spack-stage-aTV_Xt/chatterbug/pairs'
Makefile:33: recipe for target 'pairs' failed
make: *** [pairs] Error 2
make: *** Waiting for unfinished jobs....
Makefile:21: recipe for target 'ping-ping.x' failed
make[1]: *** [ping-ping.x] Error 1
make[1]: Leaving directory '/tmp/ci/spack-stage/spack-stage-aTV_Xt/chatterbug/ping-ping'
Makefile:33: recipe for target 'ping-ping' failed
make: *** [ping-ping] Error 2
make[1]: Leaving directory '/tmp/ci/spack-stage/spack-stage-aTV_Xt/chatterbug/stencil3d'
make[1]: Leaving directory '/tmp/ci/spack-stage/spack-stage-aTV_Xt/chatterbug/spread'

Details here: https://travis-ci.org/proxyapps/proxy-ci/jobs/419237527

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.