soft/dev/casper.git
2 years agoCode-format: separated user/ghost global obj init. master
Min Si [Tue, 16 Aug 2016 23:25:57 +0000]
Code-format: separated user/ghost global obj init.

Separate global objects (members in CSP_PROC) into three parts:
- common information (e.g., wrank, node_id)
- user-specific information (e.g., ghost ranks, user communicators)
- ghost-specific information (i.e., ghost local communicator)

Because communicators have to be collectively created, all communicators
are initialized in common routine CSP_initialize_proc.

To determine whether I am user or ghost, always call CSP_IS_USER or
CSP_IS_GHOST macro.

2 years agoCode-format: moved all global objs into single structure.
Min Si [Tue, 16 Aug 2016 21:00:02 +0000]
Code-format: moved all global objs into single structure.

Defined single CSP_proc CSP_PROC object to store all global variables
including internal communicators (except CSP_COMM_USER_WORLD), ids, and
ghosts information on each process.

2 years agoCode-format: moved CSP_GROUP_LOCAL to local var.
Min Si [Tue, 16 Aug 2016 19:23:18 +0000]
Code-format: moved CSP_GROUP_LOCAL to local var.

CSP_GROUP_LOCAL should be local because it is only used in
initialization.

2 years agoCleaned up code format in initialization (MPI_Init_thread).
Min Si [Tue, 16 Aug 2016 18:59:54 +0000]
Cleaned up code format in initialization (MPI_Init_thread).

2 years agoAlways set false noncontig in internal win_allocate_shared.
Min Si [Mon, 15 Aug 2016 16:09:03 +0000]
Always set false noncontig in internal win_allocate_shared.

To support noncontig hint, we need to modify the internal shared window
creation in win_allocate: (1) allowing arbitrary order of segments in
offset calculation; (2) using win_create_dynamic instead of win_create,
to attach multiple segments on ghosts. Moreover, we need to optimize
win_create_dynamic in MPI implementation similar as that for win_create.

The above work is planed as a future work. For now, the Casper library
just always sets noncontigu to false in the internal
win_allocate_shared.

2 years agoCode-format: separate shared win alloc code in win_allocate.
Min Si [Fri, 12 Aug 2016 20:34:54 +0000]
Code-format: separate shared win alloc code in win_allocate.

2 years agoRemoved user_base_addrs_in_local in ghost win (unused).
Min Si [Fri, 12 Aug 2016 17:02:58 +0000]
Removed user_base_addrs_in_local in ghost win (unused).

2 years agoBug-fix: use addr of first non-zero segment in win_alloc.
Min Si [Thu, 11 Aug 2016 22:07:31 +0000]
Bug-fix: use addr of first non-zero segment in win_alloc.

In win_allocate, we internally use win_allocate_shared + win_create,
where ghost processes pass zero-size in win_allocate_shared and user
processes just pass what user specified. To enable access to local user
processes' window segments, we need to pass the start address of entire
shared memory buffer per node at ghosts' win_create call.

The previous code used first local process (a ghost)'s base address as
the base in win_create. This can be wrong if MPI implementation returns
NULL pointer for process with zero-size segment (e.g., we get this error
with MPICH-CH4). This patch fixes the issue by using the address of the
first non-zero segment on that node.

2 years agoAdded a note about noncontig hint in README.
Min Si [Fri, 19 Aug 2016 03:12:37 +0000]
Added a note about noncontig hint in README.

2 years agoAdded wrapper function generation for MPI IO.
Min Si [Thu, 18 Aug 2016 22:28:20 +0000]
Added wrapper function generation for MPI IO.

autogen.sh checks whether mpio.h exists. If exists, also generate IO
wrappers in mpi_wrap.c.

2 years agoAdded non-supported features in README.
Min Si [Thu, 18 Aug 2016 21:54:22 +0000]
Added non-supported features in README.

3 years agodeal with MPIR_Win_flavor_t the right way
Jeff Hammond [Sun, 3 Apr 2016 05:43:59 +0000]
deal with MPIR_Win_flavor_t the right way

MPIR_Win_flavor_t is MPICH-specific and should instead
be an int, which is the type of window flavors in the
MPI standard.  as MPIR_Win_flavor_t is an enum, the
change from MPIR_Win_flavor_t to int has no side-effects.

3 years agoRevert "deal with MPIR_Win_flavor_t"
Pavan Balaji [Sun, 3 Apr 2016 05:29:25 +0000]
Revert "deal with MPIR_Win_flavor_t"

This reverts commit e35265a173b283e074cbe344e0ef42e19f1ec1e2.

3 years agodeal with MPIR_Win_flavor_t
Jeff Hammond [Sun, 3 Apr 2016 05:22:31 +0000]
deal with MPIR_Win_flavor_t

MPIR_Win_flavor_t is MPICH-specific.  This change conditionalizes
its use with #ifdef MPICH and otherwise uses int instead, since
MPIR_Win_flavor_t is just an enum anyways.

3 years agoRemoved unsupported func notice in README.
Min Si [Tue, 15 Dec 2015 07:26:02 +0000]
Removed unsupported func notice in README.

All the functions have already been implemented.

3 years agoImproved error message for shm region detection.
Min Si [Thu, 5 Nov 2015 22:52:19 +0000]
Improved error message for shm region detection.

3 years agoRenamed epoch_type to epochs_used.
Min Si [Thu, 3 Sep 2015 15:56:27 +0000]
Renamed epoch_type to epochs_used.

We used "epoch_type" with "|" as delimiters in the previous code, which
is not consistent with the description in the published paper. This
patch renamed epoch type to epochs_used, and allowed ","";" as
delimiters.

3 years agoPerf-test-fix: use appropriate epoch to reset window.
Min Si [Thu, 3 Sep 2015 15:36:29 +0000]
Perf-test-fix: use appropriate epoch to reset window.

Some performance tests specify particular epoch_type info (e.g.,
lockall, fence) to avoid unnecessary overhead. However, these tests used
lock epoch to reset window, which is not allowed. This patch fixed them.

3 years agoImplemented exclusive lock routine for ghost commands.
Min Si [Tue, 18 Aug 2015 22:56:40 +0000]
Implemented exclusive lock routine for ghost commands.

Two user groups may concurrently require the same ghost process to
handle its function command. For example, group(0, 2) and group(1, 3)
may allocate window concurrently, while user 0, 1 are sharing G0, and
user 2, 3 are sharing G1. The previous code does not handle this case,
resulting in dead lock.

In this patch, we implemented a lock mechanism to provide exclusive
accessing to multiple ghost processes for user function commands (i.e.,
win_allocate, win_free).
- The first user process on every node (user root) collectively locks
  its first local ghost process;
- When two groups concurrently acquire lock on the same ghost, we decide
  ordering of lock by priority (every group has unique group_id, the
smaller group_id the higher priority);
- Low priority group always give up its lock if any high priority group
  is waiting.
- Function command will be issued to ghosts only when every user root
  has acquired the lock.
- Lock is released by ghost after function finished on ghost side.

3 years agoAdded a test case in test/win_allocate.
Min Si [Mon, 17 Aug 2015 21:56:00 +0000]
Added a test case in test/win_allocate.

This patch added a test case that checking concurrent window allocate
& free issued by two disjoint user subsets, which are sharing the same
ghost processes (reproduce the bug caught by armci test:
tests/test_malloc_group.).

3 years agoBug-fix: get ghost ranks in user-ghost communicator.
Min Si [Mon, 17 Aug 2015 17:41:26 +0000]
Bug-fix: get ghost ranks in user-ghost communicator.

Previous code incorrectly used ranks in comm world as the unique ghost
ranks stored per-window, which are used in flush_all and
flush_local_all. This patch fixed it.

3 years agoImplemented flush_local{all}.
Min Si [Mon, 17 Aug 2015 02:37:58 +0000]
Implemented flush_local{all}.

Previous code implemented flush_local{all} by using flush{all}. This
patch reimplemented them by using real flush_local{all} operations.

3 years agoSimplified code related to segment windows.
Min Si [Mon, 17 Aug 2015 02:21:29 +0000]
Simplified code related to segment windows.

3 years agoRenamed flag name for local RMA optimization option.
Min Si [Sun, 16 Aug 2015 21:12:54 +0000]
Renamed flag name for local RMA optimization option.

Previous code used CSP_ENABLE_LOCAL_LOCK_OPT for this option, which is
unsuitable. This patch renamed it to CSP_ENABLE_LOCAL_RMA_OP_OPT.

3 years agoRenamed active_win to global_win.
Min Si [Sun, 16 Aug 2015 21:05:53 +0000]
Renamed active_win to global_win.

Previous code used "active_win" as the variable name of the global
window. However, this window is used by all active epochs and also
lockall epoch in no-lock mode. This patch renamed it to "global_win",
since it is not only for active epochs.

3 years agoCleaned up synchronization calls.
Min Si [Sun, 16 Aug 2015 20:55:04 +0000]
Cleaned up synchronization calls.

In previous code, generic processing (i.e., flush on global window used
by fence, complete, and flush_all in no-lock mode) was duplicately
written in every function. This patch summarized such processing to
subroutines in order to reuse them in each function.

3 years agoCleaned up introduction for optimization options.
Min Si [Fri, 14 Aug 2015 19:02:42 +0000]
Cleaned up introduction for optimization options.

This patch cleaned up several long comments for optimization options and
correctness discussion.

(1) removed duplicated long introduction of following optimization
options that was written in every function. Instead, it added detailed
introduction in header csp.h.
- CSP_ENABLE_LOCAL_LOCK_OPT
- CSP_ENABLE_SYNC_ALL_OPT
- Optimization for intra-node operations

(2) removed duplicated discussion for local lock processing.

3 years agoUse only active window for lock-all only mode.
Min Si [Fri, 14 Aug 2015 16:03:15 +0000]
Use only active window for lock-all only mode.

The previous code still created a separate window for no-lock mode
(i.e., in fence|lock_all mode, two windows are created), which is not
necessary. This patch changed it, now if no-lock mode is specified, only
one global active_win will be created, and lock_all/unlock_all on this
window will only be executed once in win_allocate/win_free respectively.

3 years agoCleaned up error messages.
Min Si [Thu, 13 Aug 2015 18:04:54 +0000]
Cleaned up error messages.

3 years agoRewrote ghost command routine.
Min Si [Wed, 12 Aug 2015 04:16:51 +0000]
Rewrote ghost command routine.

This patch cleaned up the ghost command routine. We explicitly define
different packet structure for each command.
- The user side issues a command by sending its corresponding packet to
  the local ghost root;
- On ghost side, every received command is handled by its corresponding
  handler function;
- Define fixed length parameters in each packet structure,
  variable-length parameters or data that cannot be got at command
  issuing time can be exchanged in issuing and handler processing on
  user and ghost processes respectively.

3 years agoCleaned up unused or locally used global vars in initthread.
Min Si [Tue, 11 Aug 2015 15:36:15 +0000]
Cleaned up unused or locally used global vars in initthread.

Moved following global variables to local since they are only used in
initthread:
CSP_ALL_NODE_IDS     -> all_nodes_ids;
CSP_G_RANKS_IN_WORLD -> g_ranks_in_world;
CSP_GROUP_USER_WORLD -> user_world_group;

Removed following unused global variables:
CSP_USER_RANKS_IN_WORLD;
CSP_NUM_G.

3 years agoSeparated header files and Makefile.
Min Si [Tue, 11 Aug 2015 02:34:11 +0000]
Separated header files and Makefile.

This patch separated header files and Makefile as follows:
Header files:
- include/ : includes definitions used by both user and ghost sides;
  also includes the header file which is exposed for external use.
- src/user/include : includes definitions only used by the user side.
- src/ghost/include : includes definitions only used by the ghost side.

Makefiles:
- src/Makefile.mk
- src/user/Makefile.mk
- src/ghost/Makefile.mk

3 years agoChanged file paths of init/finalize functions.
Min Si [Mon, 10 Aug 2015 22:01:43 +0000]
Changed file paths of init/finalize functions.

This patch changed the file paths of init/finalize calls:
1. user/init/{init, initthread}.c:
   They are generic routine called by both the ghost and the user processes
   in the beginning of program, thus move them out from user/ directory.

2. ghost/mpi/finalize.c:
   Move it to the same path as that used for user side:
   ghost/init/finalize.c.

3 years agoRenamed func -> cmd.
Min Si [Mon, 10 Aug 2015 21:40:09 +0000]
Renamed func -> cmd.

3 years agoFixed finalize bug.
Min Si [Mon, 10 Aug 2015 21:15:52 +0000]
Fixed finalize bug.

Ghost processes must wait till all local processes arrived finalize
before they start finalize. However, in the previous code, only the
local user root issues finalize command to ghosts, and ghosts start
finalize just when received that command. This is wrong, because other
local processes may issue other command (i.e., win_allocate) later than
the finalize command issued by local user root, thus those commands can
not be handled by ghosts, consequently user processes hang. This patch
fixed it.

3 years agoAdded a test to cache finalize bug.
Min Si [Mon, 10 Aug 2015 20:51:12 +0000]
Added a test to cache finalize bug.

In current version, ghost process starts finalize just when received
finalize command from the first local process. This is not correct
because the other processes may hang if they issue command like
win_allocate later than finalize command issued by the first local
process. This patch added a test to demonstrate above case.

3 years agoCleaned up test/runtest.in.
Min Si [Mon, 3 Aug 2015 21:16:18 +0000]
Cleaned up test/runtest.in.

3 years agoAlways copy confdb from main directory to test/.
Min Si [Thu, 30 Jul 2015 18:47:55 +0000]
Always copy confdb from main directory to test/.

Previous autogen only synchronized confdb to test/confdb when
test/confdb already exists, thus cause empty test/confdb at the first
build, and then undefined MACRO when configure the test directory.

4 years agoAdded a note for the non-portable u_* type issue in test/perf.
Min Si [Tue, 21 Jul 2015 22:49:50 +0000]
Added a note for the non-portable u_* type issue in test/perf.

4 years agoChanged strict option to --enable-stricttest for test suite.
Min Si [Tue, 21 Jul 2015 20:26:22 +0000]
Changed strict option to --enable-stricttest for test suite.

4 years agoDrop error message reported by 'which' in autogen.sh
Min Si [Tue, 21 Jul 2015 19:38:21 +0000]
Drop error message reported by 'which' in autogen.sh

4 years agoAdded rpath for casper test programs.
Min Si [Mon, 20 Jul 2015 20:40:28 +0000]
Added rpath for casper test programs.

4 years agoFixed echo -n portability issue in autogen.sh.
Min Si [Mon, 20 Jul 2015 20:26:05 +0000]
Fixed echo -n portability issue in autogen.sh.

4 years agoTest-cleanup: fixed compile warning under test/perf
Min Si [Sun, 19 Jul 2015 02:38:24 +0000]
Test-cleanup: fixed compile warning under test/perf

4 years agoAdded test/configure.ac and OS-dependent impls in ctest.h
Min Si [Mon, 20 Jul 2015 04:35:28 +0000]
Added test/configure.ac and OS-dependent impls in ctest.h

We check headers/functions/structures used only in tests in this
configure.ac. Then define OS-dependent implementations at header
test/include/ctest.h as generic routine, and at perf/async_fench_th.c
for that test using.

4 years agoGet number of ghosts by using CSP_ghost_size in test/perf.
Min Si [Sun, 19 Jul 2015 02:35:52 +0000]
Get number of ghosts by using CSP_ghost_size in test/perf.

4 years agoModified copyright year in Makefile.am
Min Si [Sun, 19 Jul 2015 01:53:36 +0000]
Modified copyright year in Makefile.am

4 years agoDefined a query function to check the size of ghost processes.
Min Si [Sat, 18 Jul 2015 04:48:11 +0000]
Defined a query function to check the size of ghost processes.

4 years agoTest-cleanup under test/perf.
Min Si [Fri, 17 Jul 2015 22:50:26 +0000]
Test-cleanup under test/perf.

4 years agoFixed clang warning
Min Si [Fri, 17 Jul 2015 22:46:19 +0000]
Fixed clang warning

4 years agoTest-cleanup: remove non-csp tests and set -L -l in LDADD.
Min Si [Fri, 17 Jul 2015 22:13:35 +0000]
Test-cleanup: remove non-csp tests and set -L -l in LDADD.

4 years agoDefined generic routines used by test programs.
Min Si [Fri, 17 Jul 2015 21:02:41 +0000]
Defined generic routines used by test programs.

This patch adds following three generic routines:
- CTEST_precise_double_diff
Compare two double variables byte by byte.
- CTEST_double_diff
Compare two double variables with tolerance.
- CTEST_print_double_array
Print out a double array.

4 years agoAdded namespace "CSP_" for DEBUG/WARN environment variables.
Min Si [Fri, 17 Jul 2015 17:36:19 +0000]
Added namespace "CSP_" for DEBUG/WARN environment variables.

4 years agoRenamed src/mpi directory to src/user.
Min Si [Fri, 17 Jul 2015 17:21:49 +0000]
Renamed src/mpi directory to src/user.

4 years agoTest-fix: fixed several places warning at compile time.
Min Si [Fri, 17 Jul 2015 17:17:48 +0000]
Test-fix: fixed several places warning at compile time.

4 years agoMoved comment for lock binding.
Min Si [Fri, 17 Jul 2015 16:47:54 +0000]
Moved comment for lock binding.

4 years agoCleaned up macros defined in csp.h.
Min Si [Fri, 17 Jul 2015 16:42:46 +0000]
Cleaned up macros defined in csp.h.

This patch cleaned up macro definitions in following ways:
(1) Removed non-portable typeof, and unused likely.
(2) Added recommendation to avoid function input for max/min/align
macros, and removed internal argument handling that uses typeof. For
function input, use temporary variable outside instead.
(3) Moved macros into two categories, (a) generic macros; (b)
debug/info/warnning/error output macros.
(4) Added CSP_ namespace for all macros.

4 years agoUpdate .gitignore.
Pavan Balaji [Fri, 17 Jul 2015 05:23:57 +0000]
Update .gitignore.

4 years agoPull the latest version of confdb from mpich.
Pavan Balaji [Fri, 17 Jul 2015 05:18:11 +0000]
Pull the latest version of confdb from mpich.

Also add a VERSION file with the latest version information.

4 years agoRemove unnecessary comment.
Pavan Balaji [Fri, 17 Jul 2015 05:14:55 +0000]
Remove unnecessary comment.

4 years agoRemove unnecessary CFLAGS default.
Pavan Balaji [Fri, 17 Jul 2015 05:13:53 +0000]
Remove unnecessary CFLAGS default.

Seems weird if the default -O2 gets disabled when I pass an unrelated
flag (e.g., -DFOO).  This will unnecessarily cause a debugging pain.

4 years agoUse confdb macro for ATTRIBUTE support.
Pavan Balaji [Fri, 17 Jul 2015 05:12:35 +0000]
Use confdb macro for ATTRIBUTE support.

4 years agoRemove unnecessary weak-symbols check.
Pavan Balaji [Fri, 17 Jul 2015 05:11:19 +0000]
Remove unnecessary weak-symbols check.

4 years agoCode cleanup.
Min Si [Thu, 16 Jul 2015 22:08:18 +0000]
Code cleanup.

4 years agoconfigure.ac clean up.
Min Si [Thu, 16 Jul 2015 19:50:08 +0000]
configure.ac clean up.

This patch includes following two changes:
(1) fixed default CFLAGS value set by libtool
(2) added our default CFLAGS=-O2 if user does not set it
(3) removed unnecessary --enable-g since user can set CFLAGS directly
  if need it
(4) removed -fPIC
(5) added --enable-strict option.
(6) added __typeof check and define typeof as "char *" if undefiend.

4 years agoFixed compile warning in debug message.
Min Si [Wed, 15 Jul 2015 13:03:01 +0000]
Fixed compile warning in debug message.

4 years agoRewrote window release routine to reduce duplicate code.
Min Si [Wed, 15 Jul 2015 03:37:46 +0000]
Rewrote window release routine to reduce duplicate code.

4 years agoTest-fix: remove lock since epoch_used does not include it.
Min Si [Fri, 10 Jul 2015 16:26:51 +0000]
Test-fix: remove lock since epoch_used does not include it.

4 years agoDisabled hidden byte for local lock and removed ghost segment.
Min Si [Fri, 10 Jul 2015 04:07:35 +0000]
Disabled hidden byte for local lock and removed ghost segment.

This patch includes two changes:
1. disable hidden byte for force local lock.
2. removed additional segment on every ghost since 0-size win_shared has
been fixed in MPI (need to revert it if work with an MPI implementation
still having the bug).

4 years agoBug-fix: use consistent size for ghost win size.
Min Si [Fri, 10 Jul 2015 02:27:42 +0000]
Bug-fix: use consistent size for ghost win size.

4 years agoAdded win_name info for debug use.
Min Si [Wed, 8 Jul 2015 22:07:14 +0000]
Added win_name info for debug use.

4 years agoAdded user control for async state.
Min Si [Wed, 18 Feb 2015 20:12:30 +0000]
Added user control for async state.

User can specify env CSP_ASYNC_CONFIG (on|off, on by default) to control
async state globally; or specify async_config info (on|off, global
status by default) when creating window.

4 years agoBug-fix: minor typo in lock/unlock epoch check.
Min Si [Mon, 6 Jul 2015 22:46:15 +0000]
Bug-fix: minor typo in lock/unlock epoch check.

4 years agoAdded verbose level-2 in win_allocate.
Min Si [Mon, 6 Jul 2015 22:44:11 +0000]
Added verbose level-2 in win_allocate.

Setting environment variable CSP_VERBOSE=2 enables info message of
per-window configuration.

4 years agoBug-fix: minor type in win_sync.
Min Si [Mon, 6 Jul 2015 21:29:22 +0000]
Bug-fix: minor type in win_sync.

4 years agoMarked some bugs in segment-binding (fixed 1).
Min Si [Mon, 6 Jul 2015 04:07:59 +0000]
Marked some bugs in segment-binding (fixed 1).

This patch marked following unsolved bugs in segment-binding mode:
1. No segment implementation for get_acc and rget_acc.
2. No support for multiple requests that produced in req-RMA if that op
is divided to multiple ops.

This patch also fixed a minor bug in segment binding function.

4 years agoAdded error handler on ghost processes.
Min Si [Mon, 6 Jul 2015 01:53:34 +0000]
Added error handler on ghost processes.

4 years agoRewrote communicator error handler functions.
Min Si [Thu, 2 Jul 2015 22:29:44 +0000]
Rewrote communicator error handler functions.

4 years agoSet name for comm_user_world.
Min Si [Thu, 2 Jul 2015 16:30:55 +0000]
Set name for comm_user_world.

Since its name must be MPI_COMM_WORLD for user program, we set its name
at init time.

4 years agoBug-fix: replace all comm input arguments with comm_user_world.
Min Si [Thu, 2 Jul 2015 04:31:41 +0000]
Bug-fix: replace all comm input arguments with comm_user_world.

Previous script only replaced the first matched argument, which is wrong
when function contains multiple comm input arguments. This patch fixed
it.

4 years agoScript format cleanup.
Min Si [Thu, 2 Jul 2015 03:33:58 +0000]
Script format cleanup.

4 years agoFixed typo in debug code.
Min Si [Tue, 30 Jun 2015 18:12:23 +0000]
Fixed typo in debug code.

4 years agoRewrote local RMA optimization.
Min Si [Tue, 30 Jun 2015 18:11:42 +0000]
Rewrote local RMA optimization.

4 years agoFixed icc warning.
Min Si [Mon, 29 Jun 2015 20:39:14 +0000]
Fixed icc warning.

4 years agoImplemented Win_get_attr to override win_create flavor.
Min Si [Mon, 29 Jun 2015 19:24:53 +0000]
Implemented Win_get_attr to override win_create flavor.

MPI defines several window attributes (i.e., MPI_WIN_BASE,
MPI_WIN_CREATE_FLAVOR). User can call win_get_attr to query their
value. Only the win_create flavor is changed within Casper, since user
window is internally created by WIN_CREATE but not WIN_ALLOCATE. Thus we
override the win_get_attr function and return a "fake" win_create
flavor to user. For all other attributes, we just call the original
win_get_attr.

4 years agoAdded eager pscw sync option.
Min Si [Mon, 29 Jun 2015 18:16:33 +0000]
Added eager pscw sync option.

If eager-pscw-sync is enabled, the receive calls for cw-sync will be
issued in post right after ps-sync.

4 years agoImplemented Win_test.
Min Si [Mon, 29 Jun 2015 18:16:06 +0000]
Implemented Win_test.

This patch implemented Win_test with following changes:
(1) The first test/wait call issues receive and stores requests for
later waitall/testall. The first complete test/wait frees such requests
array.
(2) Added exposure epoch status check to avoid the following case:
- first test(issue receive, then all requests are complete and freed)
- second test (assume it is the first test since requests is NULL, thus
issue receive again)

4 years agoFixed minor compiling error in runtime-load-enabled mode.
Min Si [Fri, 26 Jun 2015 19:58:49 +0000]
Fixed minor compiling error in runtime-load-enabled mode.

4 years agoAdded verbose env flag and runtime-load, epoch check config.
Min Si [Fri, 26 Jun 2015 18:45:39 +0000]
Added verbose env flag and runtime-load, epoch check config.

This patch adds several user-friendly options:
(1) Added a environment variable CSP_VERBOSE to enable configuration
printing.
(2) Added following config options to enable runtime load balancing
optimization, and disable epoch status check respectively.
--enable-runtime-load (disabled by default)
--disable-epochstat-check (enabled by default)

4 years agoImplemented remaining RMA operations.
Min Si [Mon, 22 Jun 2015 21:42:21 +0000]
Implemented remaining RMA operations.

Added CAS, Rput, Rget, Racc and Rget_acc.

4 years agoRewrote access epoch status routine.
Min Si [Mon, 22 Jun 2015 22:20:32 +0000]
Rewrote access epoch status routine.

This patch includes three parts related to access epoch status:
(1) Manage pscw and lock epoch per target, lockall and fence
globally.
(2) Get window for every operation according to both per-target
status and global status.
(3) Added epoch status check in sync calls of access epochs. This
check can be enabled/disabled by CSP_ENABLE_EPOCH_STAT_CHECK.

4 years agoAdded MPI_PROC_NULL for operations/per-target sync calls.
Min Si [Sun, 21 Jun 2015 19:10:16 +0000]
Added MPI_PROC_NULL for operations/per-target sync calls.

If target is MPI_PROC_NULL, all operations and sync calls succeed and
return immediately.

4 years agoTest-fix: added lock/unlock for window buffer reset.
Min Si [Thu, 18 Jun 2015 20:25:15 +0000]
Test-fix: added lock/unlock for window buffer reset.

4 years agoChanged autogen.sh to support user specified mpi path.
Min Si [Wed, 17 Jun 2015 16:27:44 +0000]
Changed autogen.sh to support user specified mpi path.

autogen.sh checks mpi.h in three steps:
(1) Get a default path by checking `which mpicc` (may be undefined)
(2) If user specifies <path>, check <path>/include/mpi.h. If found, use
it to generate wrapper functions, otherwise exit error.
(3) If user does not specify, check default path. If found, use it
otherwise exit error.

4 years agoRemoved unused functions.
Min Si [Wed, 17 Jun 2015 15:29:55 +0000]
Removed unused functions.

4 years agoChanged func/type format CSP_Foo->CSP_foo.
Min Si [Wed, 17 Jun 2015 15:22:28 +0000]
Changed func/type format  CSP_Foo->CSP_foo.

This patch changed the format of function and type definition.
(1) User process side format: CSP_Foo -> CSP_foo.
(2) Ghost process side format: CSP_G_Foo -> CSPG_foo.

4 years agoAdded a test to check win_allocate with MPI info hints.
Min Si [Tue, 16 Jun 2015 22:36:58 +0000]
Added a test to check win_allocate with MPI info hints.

4 years agoRenamed some internal functions for better format.
Min Si [Tue, 16 Jun 2015 21:41:08 +0000]
Renamed some internal functions for better format.

This patch renames following components.
(1) operation segmentation (file name only)
(2) static binding in win_allocate.
(3) generic routine to get ghost for a given target.
(4) dynamic load balancing including op/byte counting and the routine
getting ghost.

4 years agoReplaced all calloc to malloc+memset.
Min Si [Tue, 16 Jun 2015 20:09:39 +0000]
Replaced all calloc to malloc+memset.

4 years agoMoved window binding to a separate file.
Min Si [Tue, 16 Jun 2015 19:59:45 +0000]
Moved window binding to a separate file.