Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Jakob Luettgau
darshan
Commits
7b412204
Commit
7b412204
authored
Feb 17, 2015
by
Shane Snyder
Browse files
misc bug fixes and more documentation
parent
bec14184
Changes
4
Hide whitespace changes
Inline
Side-by-side
darshan-runtime/darshan-core.h
View file @
7b412204
...
...
@@ -38,4 +38,7 @@ struct darshan_core_record_ref
UT_hash_handle
hlink
;
};
uint32_t
darshan_hashlittle
(
const
void
*
key
,
size_t
length
,
uint32_t
initval
);
uint64_t
darshan_hash
(
const
register
unsigned
char
*
k
,
register
uint64_t
length
,
register
uint64_t
level
);
#endif
/* __DARSHAN_CORE_H */
darshan-runtime/lib/darshan-core.c
View file @
7b412204
...
...
@@ -3,6 +3,7 @@
* See COPYRIGHT in top-level directory.
*/
#define _XOPEN_SOURCE 500
#define _GNU_SOURCE
#include
"darshan-runtime-config.h"
...
...
@@ -19,6 +20,7 @@
#include
<sys/types.h>
#include
<sys/stat.h>
#include
<sys/vfs.h>
#include
<zlib.h>
#include
<mpi.h>
#include
<assert.h>
...
...
@@ -40,7 +42,7 @@ static int nprocs = -1;
#define DARSHAN_MAX_MNT_TYPE 32
struct
mnt_data
{
int64_t
hash
;
int64_t
hash
;
/* TODO: should it be possible for these to be negative? */
int64_t
block_size
;
char
path
[
DARSHAN_MAX_MNT_PATH
];
char
type
[
DARSHAN_MAX_MNT_TYPE
];
...
...
@@ -430,11 +432,11 @@ static void darshan_core_shutdown()
/* create a communicator to use for shutting down the module */
if
(
global_mod_use_count
[
i
]
==
nprocs
)
{
MPI_Comm_dup
(
MPI_COMM_WORLD
,
&
mod_comm
);
DARSHAN_MPI_CALL
(
P
MPI_Comm_dup
)
(
MPI_COMM_WORLD
,
&
mod_comm
);
}
else
{
MPI_Comm_split
(
MPI_COMM_WORLD
,
local_mod_use
[
i
],
0
,
&
mod_comm
);
DARSHAN_MPI_CALL
(
P
MPI_Comm_split
)
(
MPI_COMM_WORLD
,
local_mod_use
[
i
],
0
,
&
mod_comm
);
}
/* if module is registered locally, get the corresponding output buffer */
...
...
@@ -479,7 +481,7 @@ static void darshan_core_shutdown()
this_mod
=
NULL
;
}
MPI_Comm_free
(
&
mod_comm
);
DARSHAN_MPI_CALL
(
P
MPI_Comm_free
)
(
&
mod_comm
);
}
/* rank 0 is responsible for writing the log header */
...
...
darshan-runtime/lib/darshan-posix.c
View file @
7b412204
...
...
@@ -419,7 +419,7 @@ static void posix_get_output_data(MPI_Comm comm, void **buffer, int *size)
{
int
comm_cmp
;
MPI_Comm_compare
(
MPI_COMM_WORLD
,
comm
,
&
comm_cmp
);
DARSHAN_MPI_CALL
(
P
MPI_Comm_compare
)
(
MPI_COMM_WORLD
,
comm
,
&
comm_cmp
);
/* only do shared file reductions if this communicator includes _everyone_ */
if
((
comm_cmp
==
MPI_IDENT
)
||
(
comm_cmp
==
MPI_CONGRUENT
))
...
...
doc/darshan-dev-status.txt
View file @
7b412204
Darshan
-
modular branch development notes
========================================
Darshan
modular
ization
branch development notes
========================================
=======
== Introduction
Darshan
-modular is the new implementation of Darshan (version >= 3.0.0), a lightweight
toolkit for characterizing the I/O performance of instrumented
HPC applications.
Darshan
is a lightweight toolkit for characterizing the I/O performance of instrumented
HPC applications.
Previously, Darshan had been
designed to gather I/O data from a static set of sources.
Darshan was originally
designed to gather I/O data from a static set of sources.
Adding instrumentation for additional sources of I/O data was only possible through
manual modification of the Darshan log file format, which consequentially breaks
other utilities reliant on that format.
any
other utilities reliant on that format.
Darshan-modular is differentiated from previous versions in that it modularizes the Darshan
runtime environment and log file format
such that new "instrumentation modules" can be
added without breaking
existing tools.
Essentially, d
evelopers are given a framework to
implement arbitrary
modules, which are responsible for gathering I/O data from a specific
system component
(which could be from an I/O library, platform-specific data, etc.). Darshan
can then
manage these modules and create a valid Darshan log regardless of how many
or what
types of modules are used.
Starting with version 3.0.0, the Darshan runtime environment and log file format have
been redesigned
such that new "instrumentation modules" can be
added without breaking
existing tools.
D
evelopers are given a framework to
implement arbitrary instrumentation
modules, which are responsible for gathering I/O data from a specific
system component
(which could be from an I/O library, platform-specific data, etc.). Darshan
can then
manage these modules
at runtime
and create a valid Darshan log regardless of how many
or what
types of modules are used.
==
Status
==
Architectural overview
=== Runtime status
The Darshan source tree is composed of two primary components:
Text.
* *darshan-runtime*: Darshan runtime environment necessary for instrumenting MPI
applications and generating I/O characterization logs.
* *darshan-util*: Darshan utilities for analyzing the contents of a given Darshan
I/O characterization log.
===
Util status
===
darshan-runtime
Text.
===
Counters status
===
darshan-util
Text.
== Checking out and building the modularization branch
Developers can clone the Darshan source repository using the following methods:
* "git clone git://git.mcs.anl.gov/radix/darshan" (read-only access)
* "git clone \git@git.mcs.anl.gov:radix/darshan" (authenticated access)
After cloning the Darshan source, it is necessary to checkout the modularization
development branch:
----
git clone git@git.mcs.anl.gov:radix/darshan
git checkout dev-modular
----
For details on building the Darshan runtime and utility repositories, consult
the documentation from previous versions
(http://www.mcs.anl.gov/research/projects/darshan/docs/darshan-runtime.html[darshan-runtime] and
http://www.mcs.anl.gov/research/projects/darshan/docs/darshan-util.html[darshan-util]) -- the
necessary steps for building these repositories should not have changed in the new version of
Darshan.
== Adding new modules
Text.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment