diff parallel_processing/ppb_data_split/ppb_data_split.cc @ 9:fe8c1c25296a

fix ppb_data_split
author Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
date Fri, 03 Jan 2014 01:53:39 +0900
parents 645b93cbf36c
children
line wrap: on
line diff
--- a/parallel_processing/ppb_data_split/ppb_data_split.cc	Fri Jan 03 01:42:02 2014 +0900
+++ b/parallel_processing/ppb_data_split/ppb_data_split.cc	Fri Jan 03 01:53:39 2014 +0900
@@ -3,6 +3,7 @@
 
 #define THREAD_NUM 2
 #define DATA_NUM 10
+#define SPLIT_DATA_NUM (DATA_NUM / THREAD_NUM)
 
 typedef struct _thread_arg {
     int thread_no;
@@ -14,7 +15,7 @@
 {
     thread_arg_t *targ = (thread_arg_t *)arg;
 
-    for (int i = 0; i < DATA_NUM; i++) {
+    for (int i = 0; i < SPLIT_DATA_NUM; i++) {
         printf("thread%d : %d + 1 = %d\n",
             targ->thread_no, targ->data[i], targ->data[i] + 1);
     }
@@ -35,8 +36,9 @@
     /* spawn thread a number of THREAD_NUM */
     for (i = 0; i < THREAD_NUM; i++) {
         targ[i].thread_no = i;
-        targ[i].data = data;
 
+        /* divide a data into THREAD_NUM*/
+        targ[i].data = &data[SPLIT_DATA_NUM * i];
         /* spawn thread*/
         pthread_create(&handle[i], NULL, &thread_func, (void*)&targ[i]);
     }