Skip to content
Cameron Smith edited this page Oct 19, 2017 · 17 revisions

CODES ANL page: http://press3.mcs.anl.gov/codes/developer-access/

ROSS GitHub repo: https://github.com/carothersc/ROSS

Terminology

Logical Process (LP): a Terminal or Router

Terminal: a simulated burst buffer, compute node, or MPI process

Router: a simulated network device that connects terminals to other Routers

Kernel Process (KP): a group of Logical Processes, the default is 16

PE: physical MPI process

Event Rate: number of forward events processed per second

Efficiency: number of forward events / number of backward (rollback) events

Partitioning

We will be partitioning the graph resulting from the application mapped to the network topology. This graph is defined at run time in CODES and thus, an in-memory approach will be taken to compute a static partitioning of their graph (we assume that CODES does not support migration). The construction of the CODES partition is done in the function int codes_mapping_init(void) in codes/src/util/codes_mapping.c.

Questions

  • What method does CODES use to create its partition?
  • Can we use the messaging info (send/recv/allreduce/etc..) defined by an application trace (or a pre-defined comm pattern) to define work associated with LPs? The assumption here is that this info is the only thing available a-priori to characterize the number of events each LP will have to process.
  • Does CODES support migrating LPs?
  • How are KPs defined? If we assign LPs to MPI processes (the partition), will KPs be defined within each process or is something else done that will result in problems (i.e., a KP spread across multiple processes)?

Build

Run and Test

Clone this wiki locally