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 "Triton Repository".
The branch, master has been updated
via 51a6cc4c4edcd8f57d497de629834b55fb2edeb4 (commit)
via bc609fb811db4072901bf39e20e8c11fd151f4f8 (commit)
via 1f7a54b5ecd20fc47f50247cce7c983dd4481efe (commit)
via b9dc6d585abc467a0bbbb0a6024ff447b6023625 (commit)
via 40a1bcaef48d7ac1a19d983202dc8433659906bb (commit)
via 38ef96f38dae79a5f3d2d468ae116bd7a2c20671 (commit)
via f6682fb175c69ff6e927da2e2bb89ea476af21e4 (commit)
via df0ec180f74e7125dcdedba1a0001f1ed26e0ab0 (commit)
via 6fb69b24b232bc13e44b43a8b5bdf14349140490 (commit)
via 71fefc5b26785dbaedae0e0fd2a0390c7b3a2b44 (commit)
via 29197b45f326dd7a7f44e5c581d6490a085724ce (commit)
from 6e679ed3dc515f9b4fb886449515f4643c4cd8de (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 51a6cc4c4edcd8f57d497de629834b55fb2edeb4
Author: Justin Wozniak <wozniak(a)mcs.anl.gov>
Date: Tue Dec 28 15:28:41 2010 -0600
Pass a global in rpc-global
commit bc609fb811db4072901bf39e20e8c11fd151f4f8
Author: Justin Wozniak <wozniak(a)mcs.anl.gov>
Date: Tue Dec 28 14:49:44 2010 -0600
Sketch of test that uses state.engine
commit 1f7a54b5ecd20fc47f50247cce7c983dd4481efe
Author: Justin Wozniak <wozniak(a)mcs.anl.gov>
Date: Tue Dec 28 14:39:19 2010 -0600
Correct usage notes
commit b9dc6d585abc467a0bbbb0a6024ff447b6023625
Author: Justin Wozniak <wozniak(a)mcs.anl.gov>
Date: Tue Dec 28 14:35:47 2010 -0600
Clean out reference code
commit 40a1bcaef48d7ac1a19d983202dc8433659906bb
Author: Justin Wozniak <wozniak(a)mcs.anl.gov>
Date: Tue Dec 28 14:34:39 2010 -0600
Plug in actual call to triton_state
commit 38ef96f38dae79a5f3d2d468ae116bd7a2c20671
Author: Justin Wozniak <wozniak(a)mcs.anl.gov>
Date: Tue Dec 28 14:27:01 2010 -0600
Sketch of remote state interface and test
commit f6682fb175c69ff6e927da2e2bb89ea476af21e4
Author: Justin Wozniak <wozniak(a)mcs.anl.gov>
Date: Tue Dec 28 13:52:10 2010 -0600
Error checks
commit df0ec180f74e7125dcdedba1a0001f1ed26e0ab0
Author: Justin Wozniak <wozniak(a)mcs.anl.gov>
Date: Tue Dec 28 12:56:43 2010 -0600
state engine test
commit 6fb69b24b232bc13e44b43a8b5bdf14349140490
Author: Justin Wozniak <wozniak(a)mcs.anl.gov>
Date: Tue Dec 28 12:54:43 2010 -0600
Add engine functions to the state interface
commit 71fefc5b26785dbaedae0e0fd2a0390c7b3a2b44
Author: Justin Wozniak <wozniak(a)mcs.anl.gov>
Date: Tue Dec 28 12:17:33 2010 -0600
New engine1 test
commit 29197b45f326dd7a7f44e5c581d6490a085724ce
Author: Justin Wozniak <wozniak(a)mcs.anl.gov>
Date: Tue Dec 28 12:14:04 2010 -0600
Whitespace
-----------------------------------------------------------------------
Summary of changes:
code/src/fakess/fakess.ae | 36 ++++---
code/src/fakess/fakess.hae | 4 +-
code/src/fakess/test/engine1.ae | 13 +--
.../src/fakess/test/{post-global.sh => engine1.sh} | 0
code/src/fakess/test/module.mk.in | 1 +
code/src/mapping/mapping.ae | 8 ++-
code/src/state/state-client.aer | 108 +-------------------
code/src/state/state-client.haer | 6 +-
code/src/state/state.hae | 6 +-
code/src/{fakess => state}/test/engine1.ae | 33 +++----
.../test/post-global.sh => state/test/engine1.sh} | 0
code/src/state/test/module.mk.in | 9 ++-
.../test/engine1.ae => state/test/rpc-global.ae} | 108 +++++++++++++-------
.../state/test/{post-global.sh => rpc-global.sh} | 3 +-
.../test/engine1.ae => state/test/rpc-size.ae} | 83 ++++++---------
code/src/state/test/{shutdown.sh => rpc-size.sh} | 7 +-
code/src/state/test/shutdown.ae | 4 +-
17 files changed, 183 insertions(+), 246 deletions(-)
copy code/src/fakess/test/{post-global.sh => engine1.sh} (100%)
copy code/src/{fakess => state}/test/engine1.ae (78%)
copy code/src/{fakess/test/post-global.sh => state/test/engine1.sh} (100%)
copy code/src/{fakess/test/engine1.ae => state/test/rpc-global.ae} (53%)
copy code/src/state/test/{post-global.sh => rpc-global.sh} (86%)
copy code/src/{fakess/test/engine1.ae => state/test/rpc-size.ae} (56%)
copy code/src/state/test/{shutdown.sh => rpc-size.sh} (58%)
Diff of changes:
diff --git a/code/src/fakess/fakess.ae b/code/src/fakess/fakess.ae
index ca183d9..c334dd3 100644
--- a/code/src/fakess/fakess.ae
+++ b/code/src/fakess/fakess.ae
@@ -155,18 +155,20 @@ __blocking triton_ret_t triton_fakess_init_self(void)
__blocking void triton_fakess_state_install(void)
{
- triton_state.init_self = triton_fakess_init_self;
- triton_state.list = triton_fakess_list;
- triton_state.size = triton_fakess_size;
- triton_state.load = triton_fakess_load_map;
- triton_state.lookup = triton_fakess_lookup;
- triton_state.item_add = triton_fakess_item_add;
- triton_state.set = triton_fakess_set;
- triton_state.post = triton_fakess_post;
- triton_state.recv = triton_fakess_recv;
- triton_state.running = triton_fakess_running;
- triton_state.shutdown = triton_fakess_shutdown;
- triton_state.finalize = triton_fakess_finalize;
+ triton_state.init_self = triton_fakess_init_self;
+ triton_state.list = triton_fakess_list;
+ triton_state.size = triton_fakess_size;
+ triton_state.load = triton_fakess_load_map;
+ triton_state.lookup = triton_fakess_lookup;
+ triton_state.item_add = triton_fakess_item_add;
+ triton_state.set = triton_fakess_set;
+ triton_state.post = triton_fakess_post;
+ triton_state.recv = triton_fakess_recv;
+ triton_state.engine_start = triton_fakess_engine_start;
+ triton_state.engine_stop = triton_fakess_engine_stop;
+ triton_state.running = triton_fakess_running;
+ triton_state.shutdown = triton_fakess_shutdown;
+ triton_state.finalize = triton_fakess_finalize;
}
static struct triton_state_table *lookup_node(triton_node_t node);
@@ -203,6 +205,7 @@ static struct triton_state_table *lookup_node(triton_node_t node)
struct triton_state_table *result = NULL;
struct triton_hash_link *link;
+ assert(fakess_nodes);
link = triton_hash_search(fakess_nodes, &node);
if (link)
result = triton_hash_get_entry(link,
@@ -456,10 +459,11 @@ __blocking triton_ret_t triton_fakess_post(triton_node_t node,
triton_state_data_t *data;
char buffer[TRITON_FAKESS_SIZE_MESSAGE];
uint32_t buffer_length;
- triton_msg_tag_t tag = TRITON_TAG_FAKESS;
+ triton_msg_tag_t tag = triton_msg_new_tag(msg_group);
triton_string_t tmp;
+ /*
if (triton_debug_enabled(debug))
{
triton_node_to_string(node, &tmp);
@@ -467,6 +471,7 @@ __blocking triton_ret_t triton_fakess_post(triton_node_t node,
triton_string_get(&tmp), triton_string_get(key));
triton_string_destroy(&tmp);
}
+ */
header_length = serialize_post(node, key, value_length, buffer);
memcpy(buffer+header_length, value, value_length);
@@ -600,7 +605,7 @@ __blocking triton_ret_t triton_fakess_recv()
}
else if (ret == TRITON_ERR_CANCELED)
{
- triton_debug(debug, "triton_fakess_recv(): canceled\n");
+ // triton_debug(debug, "triton_fakess_recv(): canceled\n");
}
else
{
@@ -714,8 +719,9 @@ __blocking triton_ret_t triton_fakess_engine_start(void)
return(TRITON_SUCCESS);
}
-void triton_fakess_engine_stop(void)
+triton_ret_t triton_fakess_engine_stop(void)
{
+ // debug printf("fakess_engine_stop()\n");
triton_mutex_lock(&fakess_mutex);
/* set a flag and signal the fakess engine to stop running */
fakess_running = false;
diff --git a/code/src/fakess/fakess.hae b/code/src/fakess/fakess.hae
index 7902d08..a08c7b7 100644
--- a/code/src/fakess/fakess.hae
+++ b/code/src/fakess/fakess.hae
@@ -76,7 +76,7 @@ __blocking triton_ret_t triton_fakess_post(triton_node_t node,
__blocking triton_ret_t triton_fakess_engine_start(void);
-void triton_fakess_engine_stop(void);
+triton_ret_t triton_fakess_engine_stop(void);
__blocking triton_ret_t triton_fakess_recv(void);
@@ -89,7 +89,7 @@ triton_state_data_t *triton_fakess_item_store(struct triton_state_table *state,
__blocking triton_ret_t triton_fakess_engine_start(void);
-void triton_fakess_engine_stop(void);
+triton_ret_t triton_fakess_engine_stop(void);
bool triton_fakess_running(void);
diff --git a/code/src/fakess/test/engine1.ae b/code/src/fakess/test/engine1.ae
index 95765a6..1329939 100644
--- a/code/src/fakess/test/engine1.ae
+++ b/code/src/fakess/test/engine1.ae
@@ -30,9 +30,6 @@ static __blocking void sender()
value = malloc(128);
sprintf(value, "V1");
- printf("posting: %s %s\n",
- triton_string_get(&key), (char *)value);
-
triton_fakess_item_add(triton_node_null, &key);
triton_fakess_post(triton_node_null, &key,
value, strlen(value)+1);
@@ -51,7 +48,7 @@ static __blocking void receiver()
data = triton_fakess_lookup(triton_node_null, &key);
triton_string_destroy(&key);
value = (char *)(data->value);
- printf("value is: %s\n", value);
+ printf("receiver: value: %s\n", value);
}
static __blocking void doservertest(void)
@@ -77,14 +74,14 @@ static __blocking int doserver(int srank)
pbranch
{
doservertest();
- triton_timer(1000);
}
pbranch
{
- triton_timer(4000);
+ triton_timer(6000);
triton_fakess_engine_stop();
}
}
+
return 0;
}
@@ -104,8 +101,8 @@ static __blocking int dostuff(char *filename)
triton_map_contains(self, &server);
if (server)
{
+ printf("SERVER\n");
doserver(rank);
- triton_timer(1000);
}
else
{
@@ -136,8 +133,6 @@ int main(int argc, char *argv[])
triton_init("triton.keyval");
- ret = MPI_Init_thread(NULL, NULL, MPI_THREAD_MULTIPLE, &mpi_thread_level);
-
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
if (getenv("GDB_WAIT"))
diff --git a/code/src/fakess/test/post-global.sh b/code/src/fakess/test/engine1.sh
similarity index 100%
copy from code/src/fakess/test/post-global.sh
copy to code/src/fakess/test/engine1.sh
diff --git a/code/src/fakess/test/module.mk.in b/code/src/fakess/test/module.mk.in
index a39c3fb..52cf4f6 100644
--- a/code/src/fakess/test/module.mk.in
+++ b/code/src/fakess/test/module.mk.in
@@ -15,6 +15,7 @@ AETESTSRC += $(FAKESS_TEST_SRC)
FAKESS_TEST_RESULTS :=
FAKESS_TEST_RESULTS += $(DIR)/shutdown.result
FAKESS_TEST_RESULTS += $(DIR)/post-global.result
+FAKESS_TEST_RESULTS += $(DIR)/engine1.result
TEST_RESULTS += $(FAKESS_TEST_RESULTS)
diff --git a/code/src/mapping/mapping.ae b/code/src/mapping/mapping.ae
index fa36727..bd0f5c7 100644
--- a/code/src/mapping/mapping.ae
+++ b/code/src/mapping/mapping.ae
@@ -59,10 +59,16 @@ triton_ret_t triton_map_file(const char *filename)
triton_ret_t error;
FILE *file;
+ assert(filename);
triton_debug(debug, "mapping file: %s\n", filename);
file = fopen(filename, "r");
- assert(file);
+
+ if (!file)
+ {
+ printf("mapping: could not open: %s\n", filename);
+ exit(1);
+ }
error = triton_map_read(file);
triton_error_assert(error);
fclose(file);
diff --git a/code/src/state/state-client.aer b/code/src/state/state-client.aer
index 0a460fe..85f9b26 100644
--- a/code/src/state/state-client.aer
+++ b/code/src/state/state-client.aer
@@ -83,112 +83,14 @@ __remote __blocking triton_ret_t state_client_list(
return(tret);
}
-/*
-__remote __blocking triton_ret_t state_client_read(
- struct state_client_read_req* req,
- struct state_client_read_resp* resp
- )
+__remote __blocking triton_ret_t state_client_size(
+ int32_t* in_nothing,
+ int32_t* out_size)
{
-*/
- /*
- memset(&resp->buffer, 0, sizeof(resp->buffer));
- resp->buffer.buffer = malloc(req->size);
- if(!resp->buffer.buffer)
- {
- return(TRITON_ERR_NOMEM);
- }
- mem_offsets[0] = resp->buffer.buffer;
- tret = vosd_read(req->oid, req->fork, mem_offsets, &req->size, 1,
- &req->offset, &req->size, 1, &out_size, 0);
-
- if(tret == TRITON_SUCCESS)
- {
- /* may have been a short read, so we set the size here
- resp->buffer.size = out_size;
- resp->buffer.alloc_size = out_size;
- }
-
- /* TODO: how does the buffer_t get free'd?
- */
-/*
- return(tret);
+ *out_size = triton_state.size();
+ return TRITON_SUCCESS;
}
-*/
-
-/*
-__remote __blocking triton_ret_t state_client_write(
- struct state_client_write_req* req,
- int32_t* out_nothing
- )
-{
- triton_ret_t tret;
-
- /*
- int my_position;
- triton_addr_t peer_addr;
- int64_t obj_offset;
- int64_t size;
- int64_t out_size;
- char* buffer_offsets[1];
- uint32_t replication_factor;
- uint64_t txn_number;
- struct trans_nr_cache_entry* entry_p;
-
- /* retrieve the replication factor from the object
- obj_offset = 0;
- buffer_offsets[0] = (char*)&replication_factor;
- size = sizeof(replication_factor);
- tret = vosd_read(req->oid, REP_FACTOR_FORK, buffer_offsets,
- &size, 1, &obj_offset, &size, 1, &out_size, 0);
- if(tret != TRITON_SUCCESS)
- {
- triton_log_error(triton_log_default, tret, "replication factor vosd_read()");
- return(tret);
- }
- if(out_size != sizeof(replication_factor))
- {
- triton_crit(triton_log_default, "Error: corrupt data (short read) on replication factor fork.\n");
- return(TRITON_ERR_STATE_CLIENT_META);
- }
- tret = get_placement_info(req->oid, replication_factor,
- &my_position, &peer_addr);
- if(tret != TRITON_SUCCESS)
- {
- triton_log_error(triton_log_default, tret, "get_placement_info()");
- return(tret);
- }
-
- /* this is a client request, so I better be the master.
- /* TODO: need to handle this case; may have simply been a client with a
- * stale node list
-
- assert(my_position == 0);
-
- /* figure out what transaction number to use
- tret = trans_nr_cache_get(&entry_p, req->oid, &txn_number);
- if(tret != TRITON_SUCCESS)
- {
- triton_log_error(triton_log_default, tret, "trans_nr_cache_get()");
- return(tret);
- }
-
- tret = state_client_write_do_work(
- req->oid,
- req->fork,
- req->buffer,
- req->offset,
- req->flags,
- replication_factor,
- txn_number,
- my_position,
- peer_addr);
-
- trans_nr_cache_put(entry_p);
-
- return(tret);
- }
- */
/*
* Local variables:
diff --git a/code/src/state/state-client.haer b/code/src/state/state-client.haer
index 0b5dffb..1ac2439 100644
--- a/code/src/state/state-client.haer
+++ b/code/src/state/state-client.haer
@@ -17,7 +17,11 @@ __remote struct state_client_list_resp
*/
__remote __blocking triton_ret_t state_client_list(
int32_t* in_nothing,
- struct state_client_list_resp* resp
+ struct state_client_list_resp* resp
);
+__remote __blocking triton_ret_t state_client_size(
+ int32_t* in_nothing,
+ int32_t* out_size);
+
#endif
diff --git a/code/src/state/state.hae b/code/src/state/state.hae
index 7fdb897..015f20d 100644
--- a/code/src/state/state.hae
+++ b/code/src/state/state.hae
@@ -57,7 +57,7 @@ struct triton_state_funcs
triton_string_t *key);
triton_ret_t (*set)(triton_state_data_t *data,
- void *value);
+ void *value);
__blocking triton_ret_t (*post)(triton_node_t node,
triton_string_t *key,
@@ -66,6 +66,10 @@ struct triton_state_funcs
__blocking triton_ret_t (*recv)(void);
+ __blocking triton_ret_t (*engine_start)(void);
+
+ triton_ret_t (*engine_stop)(void);
+
bool (*running)(void);
__blocking triton_ret_t (*shutdown)(void);
diff --git a/code/src/fakess/test/engine1.ae b/code/src/state/test/engine1.ae
similarity index 78%
copy from code/src/fakess/test/engine1.ae
copy to code/src/state/test/engine1.ae
index 95765a6..f955cdd 100644
--- a/code/src/fakess/test/engine1.ae
+++ b/code/src/state/test/engine1.ae
@@ -1,7 +1,7 @@
/**
- fakess engine1
- Test fakess_engine for simple global post
+ state engine1
+ Test state.engine for simple global post
usage: mpiexec -l -n 4 engine1 hosts2.txt
(uses 2 servers and 2 clients)
@@ -30,12 +30,9 @@ static __blocking void sender()
value = malloc(128);
sprintf(value, "V1");
- printf("posting: %s %s\n",
- triton_string_get(&key), (char *)value);
-
- triton_fakess_item_add(triton_node_null, &key);
- triton_fakess_post(triton_node_null, &key,
- value, strlen(value)+1);
+ triton_state.item_add(triton_node_null, &key);
+ triton_state.post(triton_node_null, &key,
+ value, strlen(value)+1);
triton_string_destroy(&key);
}
@@ -48,10 +45,10 @@ static __blocking void receiver()
triton_timer(1000);
triton_string_init(&key, "K1");
- data = triton_fakess_lookup(triton_node_null, &key);
+ data = triton_state.lookup(triton_node_null, &key);
triton_string_destroy(&key);
value = (char *)(data->value);
- printf("value is: %s\n", value);
+ printf("receiver: value: %s\n", value);
}
static __blocking void doservertest(void)
@@ -72,19 +69,19 @@ static __blocking int doserver(int srank)
{
pbranch
{
- triton_fakess_engine_start();
+ triton_state.engine_start();
}
pbranch
{
doservertest();
- triton_timer(1000);
}
pbranch
{
- triton_timer(4000);
- triton_fakess_engine_stop();
+ triton_timer(6000);
+ triton_state.engine_stop();
}
}
+
return 0;
}
@@ -96,16 +93,16 @@ static __blocking int dostuff(char *filename)
triton_map_init();
triton_map_file(filename);
triton_fakess_init_self();
-
- triton_fakess_load_map();
+ triton_fakess_state_install();
+ triton_state.load();
self = triton_map_self();
triton_map_contains(self, &server);
if (server)
{
+ printf("SERVER\n");
doserver(rank);
- triton_timer(1000);
}
else
{
@@ -136,8 +133,6 @@ int main(int argc, char *argv[])
triton_init("triton.keyval");
- ret = MPI_Init_thread(NULL, NULL, MPI_THREAD_MULTIPLE, &mpi_thread_level);
-
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
if (getenv("GDB_WAIT"))
diff --git a/code/src/fakess/test/post-global.sh b/code/src/state/test/engine1.sh
similarity index 100%
copy from code/src/fakess/test/post-global.sh
copy to code/src/state/test/engine1.sh
diff --git a/code/src/state/test/module.mk.in b/code/src/state/test/module.mk.in
index fec5558..86af32a 100644
--- a/code/src/state/test/module.mk.in
+++ b/code/src/state/test/module.mk.in
@@ -4,8 +4,10 @@ STATE_TEST_SRC :=
STATE_TEST_SRC += $(DIR)/local.ae
STATE_TEST_SRC += $(DIR)/shutdown.ae
STATE_TEST_SRC += $(DIR)/post-global.ae
-#STATE_TEST_SRC += $(DIR)/engine1.ae
-AETESTSRC += $(DIR)/state-client.ae
+STATE_TEST_SRC += $(DIR)/engine1.ae
+STATE_TEST_SRC += $(DIR)/rpc-size.ae
+STATE_TEST_SRC += $(DIR)/rpc-global.ae
+# AETESTSRC += $(DIR)/state-client.ae
STATE_TESTS = $(patsubst %.ae,%,$(STATE_TEST_SRC))
@@ -16,6 +18,9 @@ AETESTSRC += $(STATE_TEST_SRC)
STATE_TEST_RESULTS :=
STATE_TEST_RESULTS += $(DIR)/shutdown.result
STATE_TEST_RESULTS += $(DIR)/post-global.result
+STATE_TEST_RESULTS += $(DIR)/engine1.result
+STATE_TEST_RESULTS += $(DIR)/rpc-size.result
+STATE_TEST_RESULTS += $(DIR)/rpc-global.result
TEST_RESULTS += $(STATE_TEST_RESULTS)
diff --git a/code/src/fakess/test/engine1.ae b/code/src/state/test/rpc-global.ae
similarity index 53%
copy from code/src/fakess/test/engine1.ae
copy to code/src/state/test/rpc-global.ae
index 95765a6..a9ceec1 100644
--- a/code/src/fakess/test/engine1.ae
+++ b/code/src/state/test/rpc-global.ae
@@ -1,9 +1,9 @@
/**
- fakess engine1
- Test fakess_engine for simple global post
+ state rpc-global
+ Start state.engine, post something, let client read it
- usage: mpiexec -l -n 4 engine1 hosts2.txt
+ usage: mpiexec -l -n 4 rpc-size hosts2.txt
(uses 2 servers and 2 clients)
*/
@@ -16,75 +16,108 @@
#include "src/fakess/fakess.hae"
#include "src/mapping/mapping.hae"
+#include "src/state/sc_module.h"
+#include "src/state/sc_stubs.hae"
+
#include <sys/types.h>
#include <unistd.h>
int numprocs, rank;
-static __blocking void sender()
+static __blocking void doclienttest(void)
{
- triton_string_t key;
- void *value;
+ triton_addr_t server;
+ int dummy = 0;
+ int size = 0;
- triton_string_init(&key, "K1");
- value = malloc(128);
- sprintf(value, "V1");
+ triton_addr_lookup("mpi://0", &server);
- printf("posting: %s %s\n",
- triton_string_get(&key), (char *)value);
+ printf("CLIENT\n");
- triton_fakess_item_add(triton_node_null, &key);
- triton_fakess_post(triton_node_null, &key,
- value, strlen(value)+1);
- triton_string_destroy(&key);
+ remote_state_client_size(AER_DEFAULT_CTX, server, &dummy, &size);
+
+ printf("size: %i\n", size);
+
+ return;
}
-static __blocking void receiver()
+static __blocking void receiver(triton_string_t *key)
{
+ int value;
triton_state_data_t *data;
- triton_string_t key;
- char *value;
+
+ triton_timer(2000);
+
+ data = triton_state.lookup(triton_node_null, key);
+
+ printf("value: %i\n", *(int *)data->value);
+}
+
+static __blocking void sender(triton_string_t *key)
+{
+ int *value;
triton_timer(1000);
- triton_string_init(&key, "K1");
- data = triton_fakess_lookup(triton_node_null, &key);
- triton_string_destroy(&key);
- value = (char *)(data->value);
- printf("value is: %s\n", value);
+ value = malloc(sizeof(int));
+ *value = 34;
+ triton_state.post(triton_node_null, key, value, sizeof(value));
}
static __blocking void doservertest(void)
{
- if (rank % 2 == 0)
+ printf("servertest\n");
+ triton_string_t key;
+
+ triton_string_init(&key, "sample");
+
+ // All servers have the key
+ triton_state.item_add(triton_node_null, &key);
+
+ if (rank == 0)
{
- sender();
+ receiver(&key);
}
else
{
- receiver();
+ sender(&key);
}
+ triton_string_destroy(&key);
}
-static __blocking int doserver(int srank)
+static __blocking int doserver()
{
+ triton_ret_t ret;
+ printf("SERVER\n");
+
+ ret = aer_remote_register_sc();
+ triton_error_assert(ret);
+ assert(AER_DEFAULT_CTX);
+
pwait
{
pbranch
{
- triton_fakess_engine_start();
+ triton_state.engine_start();
+ }
+ pbranch
+ {
+ aer_service_engine_start(AER_DEFAULT_CTX);
}
pbranch
{
doservertest();
- triton_timer(1000);
}
pbranch
{
- triton_timer(4000);
- triton_fakess_engine_stop();
+ triton_timer(3000);
+ printf("stop service engine\n");
+ aer_service_engine_stop();
+ printf("stop state engine\n");
+ triton_state.engine_stop();
}
}
+
return 0;
}
@@ -96,22 +129,23 @@ static __blocking int dostuff(char *filename)
triton_map_init();
triton_map_file(filename);
triton_fakess_init_self();
-
- triton_fakess_load_map();
+ triton_fakess_state_install();
+ triton_state.load();
self = triton_map_self();
triton_map_contains(self, &server);
if (server)
{
- doserver(rank);
- triton_timer(1000);
+ doserver();
}
else
{
- printf("CLIENT\n");
+ doclienttest();
}
+ triton_timer(10000);
+
return 0;
}
@@ -136,8 +170,6 @@ int main(int argc, char *argv[])
triton_init("triton.keyval");
- ret = MPI_Init_thread(NULL, NULL, MPI_THREAD_MULTIPLE, &mpi_thread_level);
-
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
if (getenv("GDB_WAIT"))
diff --git a/code/src/state/test/post-global.sh b/code/src/state/test/rpc-global.sh
similarity index 86%
copy from code/src/state/test/post-global.sh
copy to code/src/state/test/rpc-global.sh
index ff1af73..58a2237 100755
--- a/code/src/state/test/post-global.sh
+++ b/code/src/state/test/rpc-global.sh
@@ -6,10 +6,11 @@ SCRIPT=$0
BIN=${SCRIPT%.sh}
OUT=${BIN}.out
-# Test with sorted input...
mpiexec -l -n 4 ${BIN} src/mapping/test/hosts2.txt > ${OUT} 2>&1
[[ $? == 0 ]] || exit 1
+grep "size: 3" ${OUT} > /dev/null || exit 1
+
LINES=$( grep "done" ${OUT} | wc -l )
[[ $? == 0 ]] || exit 1
[[ ${LINES} == 4 ]] || exit 1
diff --git a/code/src/fakess/test/engine1.ae b/code/src/state/test/rpc-size.ae
similarity index 56%
copy from code/src/fakess/test/engine1.ae
copy to code/src/state/test/rpc-size.ae
index 95765a6..015878a 100644
--- a/code/src/fakess/test/engine1.ae
+++ b/code/src/state/test/rpc-size.ae
@@ -1,10 +1,10 @@
/**
- fakess engine1
- Test fakess_engine for simple global post
+ state rpc-size
+ Simple RPC test: does not start fakess engine
- usage: mpiexec -l -n 4 engine1 hosts2.txt
- (uses 2 servers and 2 clients)
+ usage: mpiexec -l -n 2 rpc-size hosts1a.txt
+ (uses 1 server and 1 client)
*/
#include <stdbool.h>
@@ -16,75 +16,63 @@
#include "src/fakess/fakess.hae"
#include "src/mapping/mapping.hae"
+#include "src/state/sc_module.h"
+#include "src/state/sc_stubs.hae"
+
#include <sys/types.h>
#include <unistd.h>
int numprocs, rank;
-static __blocking void sender()
+static __blocking void doclienttest(void)
{
- triton_string_t key;
- void *value;
-
- triton_string_init(&key, "K1");
- value = malloc(128);
- sprintf(value, "V1");
+ triton_addr_t server;
+ int dummy = 0;
+ int size = 0;
- printf("posting: %s %s\n",
- triton_string_get(&key), (char *)value);
+ triton_addr_lookup("mpi://0", &server);
- triton_fakess_item_add(triton_node_null, &key);
- triton_fakess_post(triton_node_null, &key,
- value, strlen(value)+1);
- triton_string_destroy(&key);
-}
+ printf("CLIENT\n");
-static __blocking void receiver()
-{
- triton_state_data_t *data;
- triton_string_t key;
- char *value;
+ remote_state_client_size(AER_DEFAULT_CTX, server, &dummy, &size);
- triton_timer(1000);
+ printf("result: %i\n", size);
- triton_string_init(&key, "K1");
- data = triton_fakess_lookup(triton_node_null, &key);
- triton_string_destroy(&key);
- value = (char *)(data->value);
- printf("value is: %s\n", value);
+ return;
}
static __blocking void doservertest(void)
{
- if (rank % 2 == 0)
- {
- sender();
- }
- else
- {
- receiver();
- }
+ printf("servertest\n");
}
-static __blocking int doserver(int srank)
+static __blocking int doserver()
{
+ triton_ret_t ret;
+ printf("SERVER\n");
+
+ ret = aer_remote_register_sc();
+ triton_error_assert(ret);
+ assert(AER_DEFAULT_CTX);
+
pwait
{
pbranch
{
- triton_fakess_engine_start();
+ aer_service_engine_start(AER_DEFAULT_CTX);
}
pbranch
{
doservertest();
- triton_timer(1000);
}
pbranch
{
- triton_timer(4000);
- triton_fakess_engine_stop();
+ triton_timer(3000);
+ printf("stop service engine\n");
+ aer_service_engine_stop();
}
}
+
return 0;
}
@@ -96,20 +84,19 @@ static __blocking int dostuff(char *filename)
triton_map_init();
triton_map_file(filename);
triton_fakess_init_self();
-
- triton_fakess_load_map();
+ triton_fakess_state_install();
+ triton_state.load();
self = triton_map_self();
triton_map_contains(self, &server);
if (server)
{
- doserver(rank);
- triton_timer(1000);
+ doserver();
}
else
{
- printf("CLIENT\n");
+ doclienttest();
}
return 0;
@@ -136,8 +123,6 @@ int main(int argc, char *argv[])
triton_init("triton.keyval");
- ret = MPI_Init_thread(NULL, NULL, MPI_THREAD_MULTIPLE, &mpi_thread_level);
-
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
if (getenv("GDB_WAIT"))
diff --git a/code/src/state/test/shutdown.sh b/code/src/state/test/rpc-size.sh
similarity index 58%
copy from code/src/state/test/shutdown.sh
copy to code/src/state/test/rpc-size.sh
index 6c58179..73df998 100755
--- a/code/src/state/test/shutdown.sh
+++ b/code/src/state/test/rpc-size.sh
@@ -6,13 +6,14 @@ SCRIPT=$0
BIN=${SCRIPT%.sh}
OUT=${BIN}.out
-# Test with sorted input...
-mpiexec -l -n 3 ${BIN} src/mapping/test/hosts2.txt > ${OUT} 2>&1
+mpiexec -l -n 2 ${BIN} src/mapping/test/hosts1a.txt > ${OUT} 2>&1
[[ $? == 0 ]] || exit 1
+grep "result: 2" ${OUT} > /dev/null || exit 1
+
LINES=$( grep "done" ${OUT} | wc -l )
[[ $? == 0 ]] || exit 1
-[[ ${LINES} == 3 ]] || exit 1
+[[ ${LINES} == 2 ]] || exit 1
echo OK
exit 0
diff --git a/code/src/state/test/shutdown.ae b/code/src/state/test/shutdown.ae
index 8f5b474..578f0f6 100644
--- a/code/src/state/test/shutdown.ae
+++ b/code/src/state/test/shutdown.ae
@@ -1,8 +1,8 @@
/**
- Test fakess_shutdown()
+ Test state.shutdown()
Example:
- mpiexec -l -n 3 src/fakess/test/shutdown src/mapping/test/hosts2.txt
+ mpiexec -l -n 3 src/state/test/shutdown src/mapping/test/hosts2.txt
*/
#include <stdbool.h>
hooks/post-receive
--
Triton Repository