aboutsummaryrefslogtreecommitdiffstats
path: root/P2
diff options
context:
space:
mode:
authorMatt Strapp <strap012@umn.edu>2020-10-26 08:46:02 -0500
committerMatt Strapp <strap012@umn.edu>2020-10-26 08:46:02 -0500
commitb7243503698bc4af05d29886554e1280af38e350 (patch)
tree1bc6543b96eb4fa8ced332bce4ac78ca1bd9225c /P2
parentAdd error checking (diff)
downloadcsci4061-b7243503698bc4af05d29886554e1280af38e350.tar
csci4061-b7243503698bc4af05d29886554e1280af38e350.tar.gz
csci4061-b7243503698bc4af05d29886554e1280af38e350.tar.bz2
csci4061-b7243503698bc4af05d29886554e1280af38e350.tar.lz
csci4061-b7243503698bc4af05d29886554e1280af38e350.tar.xz
csci4061-b7243503698bc4af05d29886554e1280af38e350.tar.zst
csci4061-b7243503698bc4af05d29886554e1280af38e350.zip
Add new template
Diffstat (limited to '')
-rw-r--r--P2/include/utils.h2
-rw-r--r--P2/lib/utils.c54
-rw-r--r--P2/solutionexe/Makefile57
-rw-r--r--P2/solutionexe/mapperbin26444 -> 39000 bytes
-rw-r--r--P2/solutionexe/mapreducebin24940 -> 32800 bytes
-rw-r--r--P2/solutionexe/reducerbin25676 -> 33968 bytes
-rw-r--r--P2/solutionexe/test/T1/F1.txt2
7 files changed, 8 insertions, 107 deletions
diff --git a/P2/include/utils.h b/P2/include/utils.h
index e3f5d43..2c91cdf 100644
--- a/P2/include/utils.h
+++ b/P2/include/utils.h
@@ -23,7 +23,6 @@ struct msgBuffer {
};
// mapper side
-
int validChar(char c);
char *getWord(char *chunk, int *i);
char *getChunkData(int mapperID);
@@ -31,7 +30,6 @@ void sendChunkData(char *inputFile, int nMappers);
// reducer side
-
int hashFunction(char* key, int reducers);
int getInterData(char *key, int reducerID);
void shuffle(int nMappers, int nReducers);
diff --git a/P2/lib/utils.c b/P2/lib/utils.c
index 603a699..17b3104 100644
--- a/P2/lib/utils.c
+++ b/P2/lib/utils.c
@@ -1,62 +1,10 @@
#include "utils.h"
-//Receive from send and return the chonk
char *getChunkData(int mapperID) {
- //Message
- struct msgBuffer message;
- //Queue ID, not sure what it actually does
- int mid;
- //Queue Key
- key_t key = 10;
- mid = msgget(key, 0666 | IPC_CREAT);
- if (mid < 0) {
- perror("Cannot open queue.\n");
- return NULL;
- }
- msgrcv(mid, &message, MSGSIZE, mapperID, 0);
- if (strcmp("END", message.msgText)) {
- struct msgBuffer ACK = {mapperID, "ACK"};
- msgsnd(mid, &ACK, MSGSIZE, 0);
- }
- // msgctl(mid, IPC_RMID, 0);
- return message.msgText;
}
// sends chunks of size 1024 to the mappers in RR fashion
void sendChunkData(char *inputFile, int nMappers) {
- struct msgBuffer message;
- key_t key = 10;
- int msgid;
-
- // open message queue
- msgid = msgget(key, 0666 | IPC_CREAT);
- if (msgid < 0) {
- perror("Cannot open queue.\n");
- exit(-1);
- }
- // message.msgText = 1;
- FILE *fptr = fopen(inputFile, "r");
-
- // construct chunks of 1024 bytes
- while(fgets(&message, chunkSize, fptr) != EOF) {
-
- /* Go to the end of the chunk, check if final character
- is a space if character is a space, do nothing
- else cut off before that word and put back file */
- // TODO! help
-
- msgsnd(msgid, &message, mapperID);
- }
-
- for (long i = 1; i < nMappers; i++) {
- struct msgBuffer END = {i, "END"};
- msgsnd(msgid, &END, MSGSIZE, 0);
-
- // TODO! does this need to be in another loop or is blocking good enough?
- msgrcv(msgid, &message, MSGSIZE, i, 0);
- }
-
- // msgctl(msgid, IPC_RMID, 0); // close that bih
}
// hash function to divide the list of word.txt files across reducers
@@ -79,7 +27,7 @@ void shuffle(int nMappers, int nReducers) {
// check if the character is valid for a word
int validChar(char c){
- return ((tolower(c) >= 'a') && tolower(c <='z')) ||
+ return (tolower(c) >= 'a' && tolower(c) <='z') ||
(c >= '0' && c <= '9');
}
diff --git a/P2/solutionexe/Makefile b/P2/solutionexe/Makefile
index 231a15e..4a969ac 100644
--- a/P2/solutionexe/Makefile
+++ b/P2/solutionexe/Makefile
@@ -1,57 +1,10 @@
-CC=gcc
-CFLAGS=-g
+.PHONY: run
-SRCDIR=src
-INCLDIR=include
-LIBDIR=lib
-
-mapreduce: $(SRCDIR)/mapreduce.c $(LIBDIR)/utils.o mapper reducer
- $(CC) $(CFLAGS) -I$(INCLDIR) $(LIBDIR)/utils.o $(SRCDIR)/mapreduce.c -o mapreduce
-
-mapper: $(SRCDIR)/mapper.c $(LIBDIR)/utils.o
- $(CC) $(CFLAGS) -I$(INCLDIR) $(LIBDIR)/utils.o $(SRCDIR)/mapper.c -o mapper
-
-reducer: $(SRCDIR)/reducer.c $(LIBDIR)/utils.o
- $(CC) $(CFLAGS) -I$(INCLDIR) $(LIBDIR)/utils.o $(SRCDIR)/reducer.c -o reducer
-
-$(LIBDIR)/utils.o: $(LIBDIR)/utils.c
- $(CC) $(CFLAGS) -I$(INCLDIR) -c $(LIBDIR)/utils.c -o $(LIBDIR)/utils.o
-
-.PHONY: run clean t1 t2 t3
-
-#500KB
-t1:
-# make -i clean
-# make
+run:
+ chmod +x mapreduce
+ chmod +x mapper
+ chmod +x reducer
./mapreduce 5 2 test/T1/F1.txt
-#44KB
-t2:
-# make -i clean
-# make
- ./mapreduce 5 2 test/T2/F2.txt
-
-#0KB
-t3:
-# make -i clean
-# make
- ./mapreduce 5 2 test/T3/F3.txt
-
-# m >= r
-
-# m=1 r=1 (min case)
-t4:
-# make -i clean
-# make
- ./mapreduce 1 1 test/T1/F1.txt
-
-# m=32 r=26 (max case)
-t5:
-# make -i clean
-# make
- ./mapreduce 32 26 test/T1/F1.txt
-
-
clean:
- rm lib/utils.o mapreduce mapper reducer
rm -rf output \ No newline at end of file
diff --git a/P2/solutionexe/mapper b/P2/solutionexe/mapper
index 15abd74..56be08c 100644
--- a/P2/solutionexe/mapper
+++ b/P2/solutionexe/mapper
Binary files differ
diff --git a/P2/solutionexe/mapreduce b/P2/solutionexe/mapreduce
index 28be9a0..3932e81 100644
--- a/P2/solutionexe/mapreduce
+++ b/P2/solutionexe/mapreduce
Binary files differ
diff --git a/P2/solutionexe/reducer b/P2/solutionexe/reducer
index 6d6ccd8..c801c99 100644
--- a/P2/solutionexe/reducer
+++ b/P2/solutionexe/reducer
Binary files differ
diff --git a/P2/solutionexe/test/T1/F1.txt b/P2/solutionexe/test/T1/F1.txt
new file mode 100644
index 0000000..8ab70be
--- /dev/null
+++ b/P2/solutionexe/test/T1/F1.txt
@@ -0,0 +1,2 @@
+
+To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have todayTo give you an estimation of the difference in the original and what we have todayTo give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have today. To give you an estimation of the difference in the original and what we have todayTo give you an estimation of the difference in the original and what we have today. \ No newline at end of file