changeset 1022:635ccc391642

Organize repository
author ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
date Thu, 31 Mar 2022 13:23:08 +0900
parents a9c630cc1c65
children 67d57b15b899
files src/parallel_execution/CMakeLists.txt src/parallel_execution/examples/DPPMC/main.cbc src/parallel_execution/examples/socketQueue/LocalDGMQueue.cbc src/parallel_execution/examples/socketQueue/Local_test.cbc src/parallel_execution/examples/socketQueue/RemoteDGMQueue.cbc src/parallel_execution/examples/socketQueue/Remote_test.cbc
diffstat 6 files changed, 61 insertions(+), 48 deletions(-) [+]
line wrap: on
line diff
--- a/src/parallel_execution/CMakeLists.txt	Sat Jan 15 17:43:04 2022 +0900
+++ b/src/parallel_execution/CMakeLists.txt	Thu Mar 31 13:23:08 2022 +0900
@@ -226,7 +226,7 @@
   dist_CountUp
   SOURCES
   CPUWorker.cbc SynchronizedQueue.cbc SingleLinkedStack.cbc examples/distributedCountUp/main.cbc  AtomicReference.cbc SingleLinkedQueue.cbc
-  examples/distributedCountUp/CountUpImpl.cbc TaskManagerImpl.cbc MultiDimIterator.cbc SpinLock.cbc
+  examples/distributedCountUp/CountUpImpl.cbc TaskManagerImpl.cbc MultiDimIterator.cbc SpinLock.cbc examples/distributedCountUp/echoNum.cbc
 )
 
 GearsCommand(
@@ -270,4 +270,26 @@
   socket_wc
   SOURCES
   examples/socketQueue/RemoteDGMQueue.cbc  examples/socketQueue/wordCount_Remote.cbc AtomicReference.cbc SingleLinkedStack.cbc
+)
+
+
+GearsCommand(
+  TARGET
+  wc_sender
+  SOURCES
+  examples/socketQueue/RemoteDGMQueue.cbc examples/socketQueue/LocalDGMQueue.cbc  examples/socketQueue/wc_sender.cbc AtomicReference.cbc SingleLinkedStack.cbc
+)
+
+GearsCommand(
+  TARGET
+  wc_counter
+  SOURCES
+  examples/socketQueue/RemoteDGMQueue.cbc examples/socketQueue/LocalDGMQueue.cbc  examples/socketQueue/wc_counter.cbc AtomicReference.cbc SingleLinkedStack.cbc
+)
+
+GearsCommand(
+  TARGET
+  queueListTree
+  SOURCES
+  examples/queueListTree/main.cbc examples/queueListTree/queueListTreeImpl.cbc AtomicReference.cbc SynchronizedQueue.cbc SingleLinkedStack.cbc RedBlackTree.cbc compare.c
 )
\ No newline at end of file
--- a/src/parallel_execution/examples/DPPMC/main.cbc	Sat Jan 15 17:43:04 2022 +0900
+++ b/src/parallel_execution/examples/DPPMC/main.cbc	Thu Mar 31 13:23:08 2022 +0900
@@ -58,7 +58,7 @@
     Phils* phils2 = createPhilsImpl(context,2,fork2,fork0); //  phils2
 #endif
 
-    par goto phils0->thinking(exit_code);
+    par goto phils0->thinking(__exit);
     par goto phils1->thinking(exit_code);
     par goto phils2->thinking(exit_code);
 #if 1
--- a/src/parallel_execution/examples/socketQueue/LocalDGMQueue.cbc	Sat Jan 15 17:43:04 2022 +0900
+++ b/src/parallel_execution/examples/socketQueue/LocalDGMQueue.cbc	Thu Mar 31 13:23:08 2022 +0900
@@ -25,7 +25,7 @@
     LocalDGMQueue->top->next = NULL;
     LocalDGMQueue->last = LocalDGMQueue->top;
     LocalDGMQueue->atomic = createAtomicReference(context);
-    LocalDGMQueue->socket = createSocket(sNum); 
+    LocalDGMQueue->socket = createSocketLocalDGMQueue(sNum); 
 
     tQueue->tQueue = (union Data*)LocalDGMQueue;
     tQueue->take  = C_takeLocalDGMQueue;
@@ -36,7 +36,7 @@
     return tQueue;
 }
 
-int* createSocket(char* sNum){
+int* createSocketLocalDGMQueue(char* sNum){
     int w_addr, c_sock;
     struct sockaddr_in a_addr;
     char *hostname = "Localhost";
@@ -104,7 +104,7 @@
     goto atomic->checkAndSet(&tQueue->top, top, NULL, next(...), clearLocalDGMQueue);
 }
 
-__code getTrance(struct LocalDGMQueue* tQueue, union Data* data, __code next(...)){
+__code getTranceLocalDGMQueue(struct LocalDGMQueue* tQueue, union Data* data, __code next(...)){
     printf("get");
     goto next(...);
 }
@@ -177,15 +177,14 @@
     goto next(...);
 }
 
-__code getData(struct LocalDGMQueue* tQueue, __code next(...), __code whenEOF(...)){
+__code getDataLocalDGMQueue(struct LocalDGMQueue* tQueue, __code next(...), __code whenEOF(...)){
     int recv_size, send_size;
     char recv_buf[BUF_SIZE], send_buf;
 
     /* クライアントから文字列を受信 */
     union Data* recv_data;
-    recv_size = recv(tQueue->socket, recv_data, sizeof(union Data), 0);
+    recv_size = read(tQueue->socket, recv_data, sizeof(union Data));
     //printf("[%s] [%d]\n", fileString->str, fileString->size);
-    printf("size is %d\n", sizeof(union Data));
     if (recv_size == -1) {
         printf("recv error\n");
         goto exit_code();
@@ -205,7 +204,7 @@
     if (strcmp(fileString->str, "finish") == 0) {
        /* 接続終了を表す0を送信 */
         send_buf = 0;
-        send_size = send(tQueue->socket, &send_buf, 1, 0);
+        send_size = write(tQueue->socket, &send_buf, 1);
         if (send_size == -1) {
             printf("send error\n");
         }
@@ -214,19 +213,16 @@
     } else {
         /* "finish"以外の場合はクライアントとの接続を継続 */
         send_buf = 1;
-        send_size = send(tQueue->socket, &send_buf, 1, 0);
+        send_size = write(tQueue->socket, &send_buf, 1);
         if (send_size == -1) {
             printf("send error\n");
         }
     }
 
-
-
     Gearef(context, TQueue)->data = recv_data;
-    
     goto putLocalDGMQueue(recv_data, next);
 }
 
-__code sendData(struct RemoteDGMQueue* tQueue, struct FileString* string, __code next(...)){
+__code sendDataLocalDGMQueue(struct RemoteDGMQueue* tQueue, struct FileString* string, __code next(...)){
 }
 
--- a/src/parallel_execution/examples/socketQueue/Local_test.cbc	Sat Jan 15 17:43:04 2022 +0900
+++ b/src/parallel_execution/examples/socketQueue/Local_test.cbc	Thu Mar 31 13:23:08 2022 +0900
@@ -4,7 +4,8 @@
 #interface "FileString.h"
 #interface "DataTransfer.h"
 char* service_num;
-
+int wordNum = 0;
+int numOfLine = 0;
 __code Task1(TQueue* localDGMQueue){ 
     goto gData();
 }
@@ -36,18 +37,20 @@
 
 __code Task3(TQueue* localDGMQueue, FileString* string){
     printf("take[%s] [num:%d]\n", string->str, string->size);
+    numOfLine += 1;
+    wordNum += strlen(string->str);
     goto gData();
     //goto localDGMQueue->isEmpty(noEmp, whenEmp);
 }
 
-__code Task3_stub(struct Context* context){
-    TQueue* localDGMQueue = (struct TQueue*)Gearef(context, TQueue)->tQueue;
-    FileString* string = Gearef(context, TQueue)->data;
-    goto Task3(context, localDGMQueue, string);
+__code Task3_stub(struct Context* context) {
+	TQueue* localDGMQueue = Gearef(context, TQueue);
+	FileString* string = Gearef(context, TQueue)->data;
+	goto Task3(context, localDGMQueue, string);
 }
 
 __code whenEmp(TQueue* localDGMQueue){
-    printf("iEmpty & end\n");
+    printf("wordNum=[%d] & end\n", wordNum);
     goto exit_code();
 }
 
@@ -56,6 +59,7 @@
 }
 
 __code getEOF(TQueue* localDGMQueue){
+    printf("wordNum=[%d] lineNum = [%d] & end\n", wordNum, numOfLine);
     printf("EOF & end\n");
     goto exit_code();
 }
--- a/src/parallel_execution/examples/socketQueue/RemoteDGMQueue.cbc	Sat Jan 15 17:43:04 2022 +0900
+++ b/src/parallel_execution/examples/socketQueue/RemoteDGMQueue.cbc	Thu Mar 31 13:23:08 2022 +0900
@@ -25,7 +25,7 @@
     RemoteDGMQueue->top->next = NULL;
     RemoteDGMQueue->last = RemoteDGMQueue->top;
     RemoteDGMQueue->atomic = createAtomicReference(context);
-    RemoteDGMQueue->socket = createSocket(sNum); 
+    RemoteDGMQueue->socket = createSocketRemoteDGMQueue(sNum); 
 
     tQueue->tQueue = (union Data*)RemoteDGMQueue;
     tQueue->take  = C_takeRemoteDGMQueue;
@@ -36,7 +36,7 @@
     return tQueue;
 }
 
-int* createSocket(char *sNum){
+int* createSocketRemoteDGMQueue(char *sNum){
     int sock;
     struct sockaddr_in a_addr;
     char *hostname = "localhost";
@@ -87,7 +87,7 @@
     goto atomic->checkAndSet(&tQueue->top, top, NULL, next(...), clearRemoteDGMQueue);
 }
 
-__code getTrance(struct RemoteDGMQueue* tQueue, union Data* data, __code next(...)){
+__code getTranceRemoteDGMQueue(struct RemoteDGMQueue* tQueue, union Data* data, __code next(...)){
     printf("get");
     goto next(...);
 }
@@ -161,8 +161,8 @@
     goto next(...);
 }
 
-__code sendData(struct RemoteDGMQueue* tQueue, union Data* data, __code next(...)){
-    char send_buf[BUF_SIZE], recv_buf;
+__code sendDataRemoteDGMQueue(struct RemoteDGMQueue* tQueue, union Data* data, __code next(...)){
+    char recv_buf;
     int send_size, recv_size;
 
 
@@ -170,7 +170,7 @@
     //memcpy(send_buf, string->str, sizeof(send_buf));
 
     /* 文字列を送信 */
-    send_size = send(tQueue->socket, data, sizeof(union Data), 0);
+    send_size = write(tQueue->socket, data, sizeof(union Data));
     if (send_size == -1) {
         printf("send error\n");
         close(tQueue->socket);
@@ -178,7 +178,7 @@
     }
 
         /* サーバーからの応答を受信 */
-    recv_size = recv(tQueue->socket, &recv_buf, 1, 0);
+    recv_size = read(tQueue->socket, &recv_buf, 1);
     if (recv_size == -1) {
         printf("recv error\n");
         close(tQueue->socket);
@@ -209,10 +209,10 @@
 	goto sendDataRemoteDGMQueue(context, tQueue, data, next);
 }
 
-__code getData(struct RemoteDGMQueue* tQueue, __code next(...), __code whenEOF(...)){
+__code getDataRemoteDGMQueue(struct RemoteDGMQueue* tQueue, __code next(...), __code whenEOF(...)){
 
 }
 
-__code closeSocket(struct RemoteDGMQueue* tQueue, __code next(...)){
+__code closeSocketRemoteDGMQueue(struct RemoteDGMQueue* tQueue, __code next(...)){
 
 }
\ No newline at end of file
--- a/src/parallel_execution/examples/socketQueue/Remote_test.cbc	Sat Jan 15 17:43:04 2022 +0900
+++ b/src/parallel_execution/examples/socketQueue/Remote_test.cbc	Thu Mar 31 13:23:08 2022 +0900
@@ -7,9 +7,11 @@
 
 __code Task1(TQueue* remoteDGMQueue){ 
     FileString* string = NEW(FileString);
-    char word[1024] = "first";
-    memcpy(string->str, word, strlen(word));
+    char data[1024] = "moziretsujugemegem"; 
+    memcpy(string->str, data, strlen(data));
     string->size = 456;
+    printf("%s\n", string->str);
+    
     goto remoteDGMQueue->put(string, Task2); 
 }
 
@@ -18,32 +20,21 @@
     goto Task1(context, remoteDGMQueue);
 }
 
+
 __code Task2(TQueue* remoteDGMQueue){
-    printf("Task2\n");
     FileString* string = NEW(FileString);
-    char word[1024] = "secound";
+    char data[1024] = "finish"; 
+    memcpy(string->str, data, strlen(data));
     string->size = 789;
-    memcpy(string->str, word, strlen(word));
-    goto remoteDGMQueue->put(string, Task3); 
+    printf("%s", string->str);
+    goto remoteDGMQueue->put(string, Task4); 
 }
 
 __code Task2_stub(struct Context* context){
     TQueue* remoteDGMQueue = (struct TQueue*)Gearef(context, TQueue)->tQueue;
-    goto Task2(context, remoteDGMQueue);
+    goto Task4(context, remoteDGMQueue);
 }
 
-__code Task3(TQueue* remoteDGMQueue){
-    printf("Task3\n");
-    FileString* string = NEW(FileString);
-    char word[1024] = "finish";
-    memcpy(string->str, word, strlen(word));
-    goto remoteDGMQueue->put(string, Task4); ;
-}
-
-__code Task3_stub(struct Context* context){
-    TQueue* remoteDGMQueue = (struct TQueue*)Gearef(context, TQueue)->tQueue;
-    goto Task3(context, remoteDGMQueue);
-}
 
 __code Task4(TQueue* remoteDGMQueue){
     printf("exit\n");