[Darshan-commits] [Darshan] branch, dev-modular, updated. darshan-2.3.1-pre2-48-gacc05e4
Service Account
git at mcs.anl.gov
Fri Mar 6 11:24:19 CST 2015
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, dev-modular has been updated
via acc05e4a78089a657525a8e6fc96e2e643aae45b (commit)
from 75eee95096b07874b7ad3e95be5c80eccad24d8f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit acc05e4a78089a657525a8e6fc96e2e643aae45b
Author: Shane Snyder <ssnyder at mcs.anl.gov>
Date: Fri Mar 6 11:23:56 2015 -0600
resolve minor TODO items
-----------------------------------------------------------------------
Summary of changes:
darshan-runtime/Makefile.in | 4 -
darshan-runtime/darshan-core.h | 27 ++-
darshan-runtime/darshan.h | 21 ++-
darshan-runtime/lib/darshan-core.c | 308 +++++++++++++++++++++--------------
darshan-runtime/lib/darshan-posix.c | 15 +-
5 files changed, 223 insertions(+), 152 deletions(-)
Diff of changes:
diff --git a/darshan-runtime/Makefile.in b/darshan-runtime/Makefile.in
index 08561a2..9bb7860 100644
--- a/darshan-runtime/Makefile.in
+++ b/darshan-runtime/Makefile.in
@@ -28,14 +28,11 @@ CFLAGS = -DDARSHAN_CONFIG_H=\"darshan-runtime-config.h\" -I . -I ../ -I $(srcdir
#
CFLAGS_SHARED = -DDARSHAN_CONFIG_H=\"darshan-runtime-config.h\" -I . -I$(srcdir) -I$(srcdir)/../ @CFLAGS@ @CPPFLAGS@ -D_LARGEFILE64_SOURCE -shared -fpic -DPIC -DDARSHAN_PRELOAD
-# TODO: BZ2?
LIBS = -lz @LIBBZ2@
lib::
@mkdir -p $@
-# TODO make sure the headers are right in these prereqs
-
lib/darshan-core.o: lib/darshan-core.c darshan-core.h $(DARSHAN_LOG_FORMAT) | lib
$(CC) $(CFLAGS) -c $< -o $@
@@ -66,7 +63,6 @@ lib/lookup8.o: lib/lookup8.c
lib/lookup8.po: lib/lookup8.c
$(CC) $(CFLAGS_SHARED) -c $< -o $@
-# TODO: huh?
#%.i: %.c
# $(CC) -E $(CFLAGS) -c $< -o $@
diff --git a/darshan-runtime/darshan-core.h b/darshan-runtime/darshan-core.h
index 0a78eed..5667e9b 100644
--- a/darshan-runtime/darshan-core.h
+++ b/darshan-runtime/darshan-core.h
@@ -12,18 +12,20 @@
#include "darshan.h"
-/* TODO: enforce this when handing out ids */
+/* TODO: this goes where ? -- shared libs */
+#define DARSHAN_MPI_CALL(func) func
+
+
#define DARSHAN_CORE_MAX_RECORDS 1024
-/* default compression buffer size of 2 MiB */
/* TODO: revisit this default size if we change memory per module */
-#define DARSHAN_COMP_BUF_SIZE (2 * 1024 * 1024)
+#define DARSHAN_CORE_COMP_BUF_SIZE (2 * 1024 * 1024)
-struct darshan_core_module
-{
- darshan_module_id id;
- struct darshan_module_funcs mod_funcs;
-};
+#define DARSHAN_CORE_MOD_SET(flags, id) (flags | (1 << id))
+
+#define DARSHAN_CORE_MOD_UNSET(flags, id) (flags & ~(1 << id))
+
+#define DARSHAN_CORE_MOD_ISSET(flags, id) (flags & (1 << id))
/* in memory structure to keep up with job level data */
struct darshan_core_runtime
@@ -31,12 +33,19 @@ struct darshan_core_runtime
struct darshan_job log_job;
char exe[DARSHAN_EXE_LEN+1];
struct darshan_core_record_ref *rec_hash;
+ int rec_count;
struct darshan_core_module* mod_array[DARSHAN_MAX_MODS];
- char comp_buf[DARSHAN_COMP_BUF_SIZE];
+ char comp_buf[DARSHAN_CORE_COMP_BUF_SIZE];
double wtime_offset;
char *trailing_data;
};
+struct darshan_core_module
+{
+ darshan_module_id id;
+ struct darshan_module_funcs mod_funcs;
+};
+
struct darshan_core_record_ref
{
struct darshan_record rec;
diff --git a/darshan-runtime/darshan.h b/darshan-runtime/darshan.h
index f942a25..9347907 100644
--- a/darshan-runtime/darshan.h
+++ b/darshan-runtime/darshan.h
@@ -25,20 +25,21 @@
/* Environment variable to override __CP_MEM_ALIGNMENT */
#define CP_MEM_ALIGNMENT_OVERRIDE "DARSHAN_MEMALIGN"
+/* module developers provide the following functions to darshan-core */
struct darshan_module_funcs
{
/* disable futher instrumentation within a module */
void (*disable_instrumentation)(void);
- /* TODO: */
+ /* perform any necessary steps prior to reducing */
void (*prepare_for_reduction)(
- darshan_record_id *shared_recs,
+ darshan_record_id *shared_recs, /* input list of shared records */
int *shared_rec_count, /* in/out shared record count */
- void **send_buf,
- void **recv_buf,
- int *rec_size
+ void **send_buf, /* send buffer for shared file reduction */
+ void **recv_buf, /* recv buffer for shared file reduction (root only) */
+ int *rec_size /* size of records being stored for this module */
);
- /* TODO: */
- void (*reduce_record)(
+ /* reduce records which are shared globally across this module */
+ void (*reduce_records)(
void* infile_v,
void* inoutfile_v,
int *len,
@@ -62,13 +63,17 @@ void darshan_core_register_module(
struct darshan_module_funcs *funcs,
int *runtime_mem_limit);
-void darshan_core_lookup_record_id(
+void darshan_core_register_record(
void *name,
int len,
int printable_flag,
darshan_module_id mod_id,
darshan_record_id *id);
+void darshan_core_unregister_record(
+ darshan_record_id rec_id,
+ darshan_module_id mod_id);
+
double darshan_core_wtime(void);
/***********************************************
diff --git a/darshan-runtime/lib/darshan-core.c b/darshan-runtime/lib/darshan-core.c
index 12381b2..a72fde4 100644
--- a/darshan-runtime/lib/darshan-core.c
+++ b/darshan-runtime/lib/darshan-core.c
@@ -30,14 +30,15 @@
/* TODO is __progname_full needed here */
extern char* __progname;
-#define DARSHAN_MPI_CALL(func) func
-
/* internal variable delcarations */
static struct darshan_core_runtime *darshan_core = NULL;
static pthread_mutex_t darshan_core_mutex = PTHREAD_MUTEX_INITIALIZER;
static int my_rank = -1;
static int nprocs = -1;
+#define DARSHAN_CORE_LOCK() pthread_mutex_lock(&darshan_core_mutex)
+#define DARSHAN_CORE_UNLOCK() pthread_mutex_unlock(&darshan_core_mutex)
+
/* FS mount information */
#define DARSHAN_MAX_MNTS 64
#define DARSHAN_MAX_MNT_PATH 256
@@ -79,9 +80,6 @@ static int darshan_log_write_record_hash(
static int darshan_log_coll_write(
MPI_File log_fh, void *buf, int count, struct darshan_log_map *map);
-#define DARSHAN_CORE_LOCK() pthread_mutex_lock(&darshan_core_mutex)
-#define DARSHAN_CORE_UNLOCK() pthread_mutex_unlock(&darshan_core_mutex)
-
/* intercept MPI initialize and finalize to manage darshan core runtime */
int MPI_Init(int *argc, char ***argv)
{
@@ -397,6 +395,7 @@ static void darshan_core_shutdown()
fprintf(stderr, "darshan library warning: unable to write job data to log file %s\n",
logfile_name);
unlink(logfile_name);
+
}
/* set the beginning offset of record hash, which precedes job info just written */
@@ -438,7 +437,6 @@ static void darshan_core_shutdown()
if(internal_timing_flag)
rec2 = DARSHAN_MPI_CALL(PMPI_Wtime)();
- /* TODO: would be nice to factor this out somehow ... a lot to look at */
/* loop over globally used darshan modules and:
* - perform shared file reductions, if possible
* - get final output buffer
@@ -484,7 +482,7 @@ static void darshan_core_shutdown()
HASH_FIND(hlink, final_core->rec_hash, &shared_recs[j],
sizeof(darshan_record_id), ref);
assert(ref);
- if(ref->global_mod_flags & (1 << i)) /* TODO: MACRO? */
+ if(DARSHAN_CORE_MOD_ISSET(ref->global_mod_flags, i))
{
mod_shared_recs[shared_rec_count++] = shared_recs[j];
}
@@ -505,7 +503,7 @@ static void darshan_core_shutdown()
DARSHAN_MPI_CALL(PMPI_Type_commit)(&red_type);
/* register a reduction operator for this module */
- DARSHAN_MPI_CALL(PMPI_Op_create)(this_mod->mod_funcs.reduce_record,
+ DARSHAN_MPI_CALL(PMPI_Op_create)(this_mod->mod_funcs.reduce_records,
1, &red_op);
/* reduce shared file records for this module */
@@ -613,29 +611,39 @@ static void darshan_core_shutdown()
* to *-<logwritetime>.darshan.gz, which indicates that this log file is
* complete and ready for analysis
*/
- /* TODO: support user given logfile path/name */
if(my_rank == 0)
{
- char* tmp_index;
- double end_log_time;
- char* new_logfile_name;
-
- new_logfile_name = malloc(PATH_MAX);
- if(new_logfile_name)
+ if(getenv("DARSHAN_LOGFILE"))
{
- new_logfile_name[0] = '\0';
- end_log_time = DARSHAN_MPI_CALL(PMPI_Wtime)();
- strcat(new_logfile_name, logfile_name);
- tmp_index = strstr(new_logfile_name, ".darshan_partial");
- sprintf(tmp_index, "_%d.darshan.gz", (int)(end_log_time-start_log_time+1));
- rename(logfile_name, new_logfile_name);
- /* set permissions on log file */
#ifdef __CP_GROUP_READABLE_LOGS
- chmod(new_logfile_name, (S_IRUSR|S_IRGRP));
+ chmod(logfile_name, (S_IRUSR|S_IRGRP));
#else
- chmod(new_logfile_name, (S_IRUSR));
+ chmod(logfile_name, (S_IRUSR));
#endif
- free(new_logfile_name);
+ }
+ else
+ {
+ char* tmp_index;
+ double end_log_time;
+ char* new_logfile_name;
+
+ new_logfile_name = malloc(PATH_MAX);
+ if(new_logfile_name)
+ {
+ new_logfile_name[0] = '\0';
+ end_log_time = DARSHAN_MPI_CALL(PMPI_Wtime)();
+ strcat(new_logfile_name, logfile_name);
+ tmp_index = strstr(new_logfile_name, ".darshan_partial");
+ sprintf(tmp_index, "_%d.darshan.gz", (int)(end_log_time-start_log_time+1));
+ rename(logfile_name, new_logfile_name);
+ /* set permissions on log file */
+#ifdef __CP_GROUP_READABLE_LOGS
+ chmod(new_logfile_name, (S_IRUSR|S_IRGRP));
+#else
+ chmod(new_logfile_name, (S_IRUSR));
+#endif
+ free(new_logfile_name);
+ }
}
}
@@ -727,6 +735,7 @@ static void darshan_core_cleanup(struct darshan_core_runtime* core)
/* construct the darshan log file name */
static void darshan_get_logfile_name(char* logfile_name, int jobid, struct tm* start_tm)
{
+ char* user_logfile_name;
char* logpath;
char* logname_string;
char* logpath_override = NULL;
@@ -740,120 +749,139 @@ static void darshan_get_logfile_name(char* logfile_name, int jobid, struct tm* s
char cuser[L_cuserid] = {0};
int ret;
- /* Use CP_LOG_PATH_OVERRIDE for the value or __CP_LOG_PATH */
- logpath = getenv(CP_LOG_PATH_OVERRIDE);
- if(!logpath)
+ /* first, check if user specifies a complete logpath to use */
+ user_logfile_name = getenv("DARSHAN_LOGFILE");
+ if(user_logfile_name)
+ {
+ if(strlen(user_logfile_name) >= (PATH_MAX-1))
+ {
+ fprintf(stderr, "darshan library warning: user log file name too long.\n");
+ logfile_name[0] = '\0';
+ }
+ else
+ {
+ strcpy(logfile_name, user_logfile_name);
+ }
+ }
+ else
{
+ /* otherwise, generate the log path automatically */
+
+ /* Use CP_LOG_PATH_OVERRIDE for the value or __CP_LOG_PATH */
+ logpath = getenv(CP_LOG_PATH_OVERRIDE);
+ if(!logpath)
+ {
#ifdef __CP_LOG_PATH
- logpath = __CP_LOG_PATH;
+ logpath = __CP_LOG_PATH;
#endif
- }
+ }
- /* get the username for this job. In order we will try each of the
- * following until one of them succeeds:
- *
- * - cuserid()
- * - getenv("LOGNAME")
- * - snprintf(..., geteuid());
- *
- * Note that we do not use getpwuid() because it generally will not
- * work in statically compiled binaries.
- */
+ /* get the username for this job. In order we will try each of the
+ * following until one of them succeeds:
+ *
+ * - cuserid()
+ * - getenv("LOGNAME")
+ * - snprintf(..., geteuid());
+ *
+ * Note that we do not use getpwuid() because it generally will not
+ * work in statically compiled binaries.
+ */
#ifndef DARSHAN_DISABLE_CUSERID
- cuserid(cuser);
+ cuserid(cuser);
#endif
- /* if cuserid() didn't work, then check the environment */
- if(strcmp(cuser, "") == 0)
- {
- logname_string = getenv("LOGNAME");
- if(logname_string)
+ /* if cuserid() didn't work, then check the environment */
+ if(strcmp(cuser, "") == 0)
{
- strncpy(cuser, logname_string, (L_cuserid-1));
+ logname_string = getenv("LOGNAME");
+ if(logname_string)
+ {
+ strncpy(cuser, logname_string, (L_cuserid-1));
+ }
}
- }
- /* if cuserid() and environment both fail, then fall back to uid */
- if(strcmp(cuser, "") == 0)
- {
- uid_t uid = geteuid();
- snprintf(cuser, sizeof(cuser), "%u", uid);
- }
+ /* if cuserid() and environment both fail, then fall back to uid */
+ if(strcmp(cuser, "") == 0)
+ {
+ uid_t uid = geteuid();
+ snprintf(cuser, sizeof(cuser), "%u", uid);
+ }
- /* generate a random number to help differentiate the log */
- hlevel=DARSHAN_MPI_CALL(PMPI_Wtime)() * 1000000;
- (void)gethostname(hname, sizeof(hname));
- logmod = darshan_hash((void*)hname,strlen(hname),hlevel);
+ /* generate a random number to help differentiate the log */
+ hlevel=DARSHAN_MPI_CALL(PMPI_Wtime)() * 1000000;
+ (void)gethostname(hname, sizeof(hname));
+ logmod = darshan_hash((void*)hname,strlen(hname),hlevel);
- /* see if darshan was configured using the --with-logpath-by-env
- * argument, which allows the user to specify an absolute path to
- * place logs via an env variable.
- */
+ /* see if darshan was configured using the --with-logpath-by-env
+ * argument, which allows the user to specify an absolute path to
+ * place logs via an env variable.
+ */
#ifdef __CP_LOG_ENV
- /* just silently skip if the environment variable list is too big */
- if(strlen(__CP_LOG_ENV) < 256)
- {
- /* copy env variable list to a temporary buffer */
- strcpy(env_check, __CP_LOG_ENV);
- /* tokenize the comma-separated list */
- env_tok = strtok(env_check, ",");
- if(env_tok)
+ /* just silently skip if the environment variable list is too big */
+ if(strlen(__CP_LOG_ENV) < 256)
{
- do
+ /* copy env variable list to a temporary buffer */
+ strcpy(env_check, __CP_LOG_ENV);
+ /* tokenize the comma-separated list */
+ env_tok = strtok(env_check, ",");
+ if(env_tok)
{
- /* check each env variable in order */
- logpath_override = getenv(env_tok);
- if(logpath_override)
+ do
{
- /* stop as soon as we find a match */
- break;
- }
- }while((env_tok = strtok(NULL, ",")));
+ /* check each env variable in order */
+ logpath_override = getenv(env_tok);
+ if(logpath_override)
+ {
+ /* stop as soon as we find a match */
+ break;
+ }
+ }while((env_tok = strtok(NULL, ",")));
+ }
}
- }
#endif
- if(logpath_override)
- {
- ret = snprintf(logfile_name, PATH_MAX,
- "%s/%s_%s_id%d_%d-%d-%d-%" PRIu64 ".darshan_partial",
- logpath_override,
- cuser, __progname, jobid,
- (start_tm->tm_mon+1),
- start_tm->tm_mday,
- (start_tm->tm_hour*60*60 + start_tm->tm_min*60 + start_tm->tm_sec),
- logmod);
- if(ret == (PATH_MAX-1))
+ if(logpath_override)
{
- /* file name was too big; squish it down */
- snprintf(logfile_name, PATH_MAX,
- "%s/id%d.darshan_partial",
- logpath_override, jobid);
+ ret = snprintf(logfile_name, PATH_MAX,
+ "%s/%s_%s_id%d_%d-%d-%d-%" PRIu64 ".darshan_partial",
+ logpath_override,
+ cuser, __progname, jobid,
+ (start_tm->tm_mon+1),
+ start_tm->tm_mday,
+ (start_tm->tm_hour*60*60 + start_tm->tm_min*60 + start_tm->tm_sec),
+ logmod);
+ if(ret == (PATH_MAX-1))
+ {
+ /* file name was too big; squish it down */
+ snprintf(logfile_name, PATH_MAX,
+ "%s/id%d.darshan_partial",
+ logpath_override, jobid);
+ }
}
- }
- else if(logpath)
- {
- ret = snprintf(logfile_name, PATH_MAX,
- "%s/%d/%d/%d/%s_%s_id%d_%d-%d-%d-%" PRIu64 ".darshan_partial",
- logpath, (start_tm->tm_year+1900),
- (start_tm->tm_mon+1), start_tm->tm_mday,
- cuser, __progname, jobid,
- (start_tm->tm_mon+1),
- start_tm->tm_mday,
- (start_tm->tm_hour*60*60 + start_tm->tm_min*60 + start_tm->tm_sec),
- logmod);
- if(ret == (PATH_MAX-1))
+ else if(logpath)
{
- /* file name was too big; squish it down */
- snprintf(logfile_name, PATH_MAX,
- "%s/id%d.darshan_partial",
- logpath, jobid);
+ ret = snprintf(logfile_name, PATH_MAX,
+ "%s/%d/%d/%d/%s_%s_id%d_%d-%d-%d-%" PRIu64 ".darshan_partial",
+ logpath, (start_tm->tm_year+1900),
+ (start_tm->tm_mon+1), start_tm->tm_mday,
+ cuser, __progname, jobid,
+ (start_tm->tm_mon+1),
+ start_tm->tm_mday,
+ (start_tm->tm_hour*60*60 + start_tm->tm_min*60 + start_tm->tm_sec),
+ logmod);
+ if(ret == (PATH_MAX-1))
+ {
+ /* file name was too big; squish it down */
+ snprintf(logfile_name, PATH_MAX,
+ "%s/id%d.darshan_partial",
+ logpath, jobid);
+ }
+ }
+ else
+ {
+ logfile_name[0] = '\0';
}
- }
- else
- {
- logfile_name[0] = '\0';
}
return;
@@ -1198,7 +1226,7 @@ static int darshan_log_coll_open(char *logfile_name, MPI_File *log_fh)
/* open the darshan log file for writing */
ret = DARSHAN_MPI_CALL(PMPI_File_open)(MPI_COMM_WORLD, logfile_name,
MPI_MODE_CREATE | MPI_MODE_WRONLY | MPI_MODE_EXCL, info, log_fh);
- if(ret < 0)
+ if(ret != MPI_SUCCESS)
return(-1);
MPI_Info_free(&info);
@@ -1244,7 +1272,7 @@ static int darshan_compress_buffer(void **pointers, int *lengths, int count,
}
tmp_stream.next_out = comp_buf;
- tmp_stream.avail_out = DARSHAN_COMP_BUF_SIZE;
+ tmp_stream.avail_out = DARSHAN_CORE_COMP_BUF_SIZE;
/* loop over the input pointers */
for(i = 0; i < count; i++)
@@ -1425,7 +1453,7 @@ static int darshan_log_coll_write(MPI_File log_fh, void *buf, int count,
/* perform the collective write */
ret = DARSHAN_MPI_CALL(PMPI_File_write_at_all)(log_fh, my_off, buf,
count, MPI_BYTE, &status);
- if(ret < 0)
+ if(ret != MPI_SUCCESS)
return(-1);
/* send the ending offset from rank (n-1) to rank 0 */
@@ -1499,8 +1527,7 @@ void darshan_core_register_module(
return;
}
-/* TODO: RENAME */
-void darshan_core_lookup_record_id(
+void darshan_core_register_record(
void *name,
int len,
int printable_flag,
@@ -1508,7 +1535,7 @@ void darshan_core_lookup_record_id(
darshan_record_id *rec_id)
{
darshan_record_id tmp_rec_id;
- struct darshan_core_record_ref* ref;
+ struct darshan_core_record_ref *ref;
if(!darshan_core)
return;
@@ -1523,7 +1550,15 @@ void darshan_core_lookup_record_id(
HASH_FIND(hlink, darshan_core->rec_hash, &tmp_rec_id, sizeof(darshan_record_id), ref);
if(!ref)
{
- /* if not, add this record to the hash */
+ /* record not found -- add it to the hash if we aren't already tracking the
+ * maximum number of records
+ */
+ if(darshan_core->rec_count >= DARSHAN_CORE_MAX_RECORDS)
+ {
+ DARSHAN_CORE_UNLOCK();
+ return;
+ }
+
ref = malloc(sizeof(struct darshan_core_record_ref));
if(ref)
{
@@ -1534,16 +1569,41 @@ void darshan_core_lookup_record_id(
strcpy(ref->rec.name, name);
HASH_ADD(hlink, darshan_core->rec_hash, rec.id, sizeof(darshan_record_id), ref);
+ darshan_core->rec_count++;
}
}
- /* TODO: we need a function to disassociate a module with a record id, probably */
- ref->mod_flags |= (1 << mod_id); /* TODO: MACRO? */
+ ref->mod_flags = DARSHAN_CORE_MOD_SET(ref->mod_flags, mod_id);
DARSHAN_CORE_UNLOCK();
*rec_id = tmp_rec_id;
return;
}
+void darshan_core_unregister_record(
+ darshan_record_id rec_id,
+ darshan_module_id mod_id)
+{
+ struct darshan_core_record_ref *ref;
+
+ if(!darshan_core)
+ return;
+
+ DARSHAN_CORE_LOCK();
+ HASH_FIND(hlink, darshan_core->rec_hash, &rec_id, sizeof(darshan_record_id), ref);
+ assert(ref);
+
+ /* disassociate this module from the given record id */
+ ref->mod_flags = DARSHAN_CORE_MOD_UNSET(ref->mod_flags, mod_id);
+ if(!(ref->mod_flags))
+ {
+ /* if no other modules are associated with this rec, delete it */
+ HASH_DELETE(hlink, darshan_core->rec_hash, ref);
+ }
+ DARSHAN_CORE_UNLOCK();
+
+ return;
+}
+
double darshan_core_wtime()
{
if(!darshan_core)
diff --git a/darshan-runtime/lib/darshan-posix.c b/darshan-runtime/lib/darshan-posix.c
index 5da3534..3222b71 100644
--- a/darshan-runtime/lib/darshan-posix.c
+++ b/darshan-runtime/lib/darshan-posix.c
@@ -127,7 +127,7 @@ static void posix_file_close_fd(int fd);
static void posix_disable_instrumentation(void);
static void posix_prepare_for_reduction(darshan_record_id *shared_recs,
int *shared_rec_count, void **send_buf, void **recv_buf, int *rec_size);
-static void posix_reduce_record(void* infile_v, void* inoutfile_v,
+static void posix_reduce_records(void* infile_v, void* inoutfile_v,
int *len, MPI_Datatype *datatype);
static void posix_get_output_data(void **buffer, int *size);
static void posix_shutdown(void);
@@ -306,7 +306,7 @@ static void posix_runtime_initialize()
{
.disable_instrumentation = &posix_disable_instrumentation,
.prepare_for_reduction = &posix_prepare_for_reduction,
- .reduce_record = &posix_reduce_record,
+ .reduce_records = &posix_reduce_records,
.get_output_data = &posix_get_output_data,
.shutdown = &posix_shutdown
};
@@ -350,7 +350,8 @@ static void posix_runtime_initialize()
memset(posix_runtime->file_record_array, 0, posix_runtime->file_array_size *
sizeof(struct darshan_posix_file));
- DARSHAN_MPI_CALL(PMPI_Comm_rank)(MPI_COMM_WORLD, &my_rank); /* TODO: can we move this out of here? */
+ /* TODO: can we move this out of here? perhaps register_module returns rank? */
+ DARSHAN_MPI_CALL(PMPI_Comm_rank)(MPI_COMM_WORLD, &my_rank);
return;
}
@@ -369,7 +370,7 @@ static struct posix_runtime_file* posix_file_by_name(const char *name)
newname = (char*)name;
/* get a unique id for this file from darshan core */
- darshan_core_lookup_record_id(
+ darshan_core_register_record(
(void*)newname,
strlen(newname),
1,
@@ -548,7 +549,7 @@ static void posix_prepare_for_reduction(
*rec_size = sizeof(struct darshan_posix_file);
- /* TODO: HACK-Y -- how can we do this in a cleaner way?? */
+ /* TODO: cleaner way to do this? */
if(my_rank == 0)
posix_runtime->red_buf = *recv_buf;
posix_runtime->shared_rec_count = *shared_rec_count;
@@ -556,7 +557,7 @@ static void posix_prepare_for_reduction(
return;
}
-static void posix_reduce_record(
+static void posix_reduce_records(
void* infile_v,
void* inoutfile_v,
int *len,
@@ -605,7 +606,7 @@ static void posix_get_output_data(
{
assert(posix_runtime);
- /* TODO: HACK-Y -- how can we do this in a cleaner way?? */
+ /* TODO: cleaner way to do this? */
/* clean up reduction state */
if(my_rank == 0)
{
hooks/post-receive
--
More information about the Darshan-commits
mailing list