[Darshan-commits] [Git][darshan/darshan][mmap-dev] remove old modularization design docs
Shane Snyder
xgitlab at cels.anl.gov
Mon Jun 20 20:56:12 CDT 2016
Shane Snyder pushed to branch mmap-dev at darshan / darshan
Commits:
bb75028f by Shane Snyder at 2016-06-20T20:50:29-05:00
remove old modularization design docs
- - - - -
2 changed files:
- − doc/darshan-modularization-design-notes.txt
- − doc/darshan-modularization-whiteboard.pdf
Changes:
=====================================
doc/darshan-modularization-design-notes.txt deleted
=====================================
--- a/doc/darshan-modularization-design-notes.txt
+++ /dev/null
@@ -1,112 +0,0 @@
-Rough design notes on modularizing Darshan
-2014-09-24
-------------------------
-
-- Darshan is split into two parts (subdirs in the same repo):
- - runtime: runtime instrumentation for MPI programs
- - util: post-processing of logs
-
-Runtime design
-----------------
-
-- current code has the following responsibilities:
- - init:
- - set up data structures
- - during runtime:
- - track file names and handles
- - memory allocation
- - intercepting function calls
- - updating counters
- - shutdown:
- - identify shared files
- - aggregation/reduction
- - compression
- - write log
-
-- propose division of code in modular runtime library:
- (these aren't literally separate libraries, they are probably all
- combined):
- - core lib:
- - central component that modules register with, coordinates shutdown
- - modules:
- - posix, mpi-io, pnetcdf, hdf5, asg, etc.
- - register with the core lib and track statistics for a single API
- - common/utility lib:
- - contains utility functions
- - not mandatory for a module to use this, but may make things easier
-
-- responsibilities of core library:
- - track file names and map them to generic IDs
- (keep full path names)
- - tell modules how much memory they can consume
- - kick off shutdown procedure
- - perform generic (zlib) compression
-
-- at shutdown time, the core library will:
- - create output file
- - write header and index information
- - write out filename->ID mapping
- - perform its own aggregation step to identify files shared across ranks
-
-API:
-- core API (presented by core library, used by modules):
- - register(const char* name, int* runtime_mem_limit, struct mod_fns *mfns)
- - lets module register with the core library, provide its name and table
- of function pointers, and get back a limit on how much RAM it can
- consume
- - lookup_id(void* name, int len, int64* ID, int printable_flag);
- - used by module to convert a file name to a generic ID. printable_flag
- tells Darshan that the "name" is not a string (as in ASG use case)
-
-- module API (will be function pointers in struct mod_fns above, this is the
- API that each module must present to the core library)
- - prep_for_shutdown()
- - tells the module that it should stop instrumenting and perform any
- module-specific aggregation or custom compression that it wants to do
- before Darshan stores its results
- - get_output(void **buffer, int size)
- - called by core library to get a pointer to the data that should be
- written into the log file. Darshan will zlib compress it and put it
- in the right position in the output file.
-
-- how will the asg module fit in?
- - it doesn't have file names
- - will pass in object IDs instead that will still get mapped to generic
- Darshan IDs just like a file name would have
- - set flag telling Darshan that the "name" won't be printable
-
-- compiler script:
- - how much do we want to modularize here?
- - don't need to do this initially, but we could have the compiler script
- call out to a predefined directory to look for scripts or files that let
- each module describe the linker arguments to add
- - avoid extremely large ld arguments
-
-- utility library:
- - this is the part run to process existing logs
- - file format:
-
- - header (endianness, version number, etc.)
- - job information (cmd line, start time, end time, etc.)
- - indices
- - location/size of name->id mapping table
- - location/size of each module's opaque data (with name)
- - table of name->id mapping
- - needs to handle variable length names (some of which won't be
- printable)
- - format it however makes sense for parsing
- - compress this part since it will often contain mostly text
- - opaque blobs containing data for each module
- - modules will refer to files using ID from name->id table, won't
- store full paths here
-
- - each module can define its own parser, grapher, etc. as needed
- - for convenience we may integrate posix and mpi-io support into the default
- darshan tools
-
-- development notes
- - do development in git branch
- - ignore compatibility (we'll work that out later)
- - strip down to basic example
- - just do one or two posix counters to start, but exercise all of the
- API and code organization stuff
=====================================
doc/darshan-modularization-whiteboard.pdf deleted
=====================================
Binary files a/doc/darshan-modularization-whiteboard.pdf and /dev/null differ
View it on GitLab: https://xgitlab.cels.anl.gov/darshan/darshan/commit/bb75028f752975eabdd1725329d98df455ea8c20
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/darshan-commits/attachments/20160620/c2729b03/attachment-0001.html>
More information about the Darshan-commits
mailing list