From 7b3add28399f5141e95760a2c37d0563a394980d Mon Sep 17 00:00:00 2001 From: qstokkink Date: Tue, 27 May 2014 12:51:00 +0200 Subject: [PATCH 01/14] Fixed it all --- Assignment3/ass3.jar | Bin 32898 -> 34575 bytes Assignment3/src/ProcessManager.java | 53 +++++++++++++++--- Assignment3/src/SingleProcess.java | 2 + .../src/org/da/ass3/CandidateProcess.java | 23 ++++++-- Assignment3/src/org/da/ass3/Connector.java | 4 +- .../src/org/da/ass3/OrdinaryProcess.java | 6 +- 6 files changed, 70 insertions(+), 18 deletions(-) diff --git a/Assignment3/ass3.jar b/Assignment3/ass3.jar index 939af18034fb0118d06629e4523e7fcccefc2017..c918bdf8c7f50f4e137096456536283a4de5ebe5 100644 GIT binary patch delta 14965 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 M$Pf_p?!TY@AO1JS`2YX_ diff --git a/Assignment3/src/ProcessManager.java b/Assignment3/src/ProcessManager.java index 937a770..4c65718 100644 --- a/Assignment3/src/ProcessManager.java +++ b/Assignment3/src/ProcessManager.java @@ -142,6 +142,15 @@ public static void main(String[] args) throws IOException { } System.out.println("DONE"); + + try { + Thread.sleep(2000); + System.out.println("Repeat of result:"); + System.out.print(result); + } catch (InterruptedException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } } private static class ProcessThread extends Thread{ @@ -158,14 +167,14 @@ public void kill(){ if (process != null) process.destroy(); else if (singleProcess != null) - singleProcess.stop(); + singleProcess.interrupt(); } @Override public void run() { runJar(); -// runThread(); + //runThread(); } public void runJar() { @@ -174,8 +183,14 @@ public void runJar() { for (String arg : args) command += " \"" + arg + "\""; process = Runtime.getRuntime().exec(command); + ISConsumer stdout = new ISConsumer(process.getInputStream()); + ISConsumer stderr = new ISConsumer(process.getErrorStream()); + stdout.start(); + stderr.start(); process.waitFor(); - InputStream in = process.getInputStream(); + stdout.kill(); + stderr.kill(); + /*InputStream in = process.getInputStream(); InputStream err = process.getErrorStream(); byte b[] = new byte[in.available()]; @@ -184,7 +199,7 @@ public void runJar() { byte c[] = new byte[err.available()]; err.read(c, 0, c.length); - System.out.println(new String(c)); + System.out.println(new String(c));*/ } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { @@ -193,13 +208,37 @@ public void runJar() { } public void runThread() { - SingleProcess p = new SingleProcess(args); - p.start(); + singleProcess = new SingleProcess(args); + singleProcess.start(); try { - p.join(); + singleProcess.join(); } catch (InterruptedException e) { e.printStackTrace(); } } } + + private static class ISConsumer extends Thread{ + private final InputStream is; + private boolean alive = true; + + public ISConsumer (InputStream is){ + this.is = is; + } + + public void kill(){ + alive = false; + } + + public void run(){ + while (alive){ + try { + is.read(); + if (is.available() == 0) + Thread.sleep(10); + } catch (IOException | InterruptedException e) { + } + } + } + } } diff --git a/Assignment3/src/SingleProcess.java b/Assignment3/src/SingleProcess.java index 8c95208..8e52ea1 100644 --- a/Assignment3/src/SingleProcess.java +++ b/Assignment3/src/SingleProcess.java @@ -52,6 +52,8 @@ public static void main(String[] args) throws FileNotFoundException, RemoteExcep } op.join(); + } catch (InterruptedException ee) { + System.err.println("WARNING: " + me.getId() + " interrupted forcefully!"); } catch (Exception e){ e.printStackTrace(); } diff --git a/Assignment3/src/org/da/ass3/CandidateProcess.java b/Assignment3/src/org/da/ass3/CandidateProcess.java index 4a24ce9..543f9bc 100644 --- a/Assignment3/src/org/da/ass3/CandidateProcess.java +++ b/Assignment3/src/org/da/ass3/CandidateProcess.java @@ -7,6 +7,7 @@ import java.rmi.RemoteException; import java.util.ArrayList; import java.util.Collection; +import java.util.LinkedList; import java.util.Random; import java.util.concurrent.ConcurrentLinkedQueue; @@ -44,11 +45,15 @@ public CandidateProcess(Connector connector, long id, Collection allIds){ this.myid = id; connector.subscribe(this); - // TODO randomize order - this.untraversed.addAll(allIds); - + ArrayList remaining = new ArrayList(allIds); + while (!remaining.isEmpty()){ + int index = (int) Math.round(Math.random()*remaining.size()); + if (index == remaining.size()) + index--; + untraversed.add(remaining.remove(index)); + } - untraversed.remove(myid); + untraversed.remove((Long) myid); } /** @@ -67,7 +72,7 @@ public void kill(){ @Override public void run(){ while (alive && !untraversed.isEmpty() && !killed){ - long link = untraversed.poll(); + long link = untraversed.peek(); try { connector.send(link, new CandidateMessage(level, myid)); } catch (MalformedURLException | RemoteException @@ -80,12 +85,16 @@ public void run(){ R = false; System.out.println(myid + "] Candidate waiting for message"); System.out.flush(); + int timeout = 50; do { // Wait - try { Thread.sleep(100); } catch (InterruptedException e) {} + try { Thread.sleep(20); } catch (InterruptedException e) {} + timeout--; } while (alive && messageQueue.isEmpty()); if (!alive) break; + if (timeout == 0) + break; MsgTuple message = messageQueue.poll(); System.out.println(myid + "] Candidate received message " + message); if (message.getId() == myid && !killed){ @@ -93,6 +102,7 @@ public void run(){ untraversed.remove(message.getLink()); System.out.println(printUntraversed()); connector.log(printUntraversed()); + R = link != message.getLink(); } else { if (message.compareTo(new MsgTuple(level, myid)) < 0){ // Goto R @@ -130,6 +140,7 @@ private String printUntraversed() { array += "["; for (Long l : untraversed) array += l + ", "; + array = array.substring(0, array.length()-2); array += "]"; return array; } diff --git a/Assignment3/src/org/da/ass3/Connector.java b/Assignment3/src/org/da/ass3/Connector.java index 6bd6010..405d86c 100644 --- a/Assignment3/src/org/da/ass3/Connector.java +++ b/Assignment3/src/org/da/ass3/Connector.java @@ -145,13 +145,13 @@ private void clearLog(){ * Wait for a random amount of time */ private void delay() { - double delay = 15 + random.nextGaussian()*5; + /*double delay = 15 + random.nextGaussian()*5; if (delay < 5) delay = 5; try { Thread.sleep((long) delay); } catch (InterruptedException e) { - } + }*/ } } diff --git a/Assignment3/src/org/da/ass3/OrdinaryProcess.java b/Assignment3/src/org/da/ass3/OrdinaryProcess.java index b859d38..23bb8b2 100644 --- a/Assignment3/src/org/da/ass3/OrdinaryProcess.java +++ b/Assignment3/src/org/da/ass3/OrdinaryProcess.java @@ -57,7 +57,7 @@ public void kill(){ public void run(){ while (alive){ // Wait for a message - try { Thread.sleep(100); } catch (InterruptedException e) {} + try { Thread.sleep(50); } catch (InterruptedException e) {} if (!messageQueue.isEmpty()){ System.out.println(myid + "] Ordinary received message"); MsgTuple message = messageQueue.poll(); @@ -66,8 +66,8 @@ public void run(){ MsgTuple current = new MsgTuple(level, owner_id); // Do not send if this owner and the received owner are the same - if ( current.getId() == message.getId() ) - continue; + //if ( current.getId() == message.getId() ) + //continue; // Compare int compare = message.compareTo(current); From 131c8d0a56f10eb7b590cbbbc52937930c8c8f3e Mon Sep 17 00:00:00 2001 From: qstokkink Date: Sun, 1 Jun 2014 15:04:38 +0200 Subject: [PATCH 02/14] Cleaned some comments + code --- Assignment3/ass3.jar | Bin 34575 -> 34327 bytes Assignment3/src/ProcessManager.java | 39 ++++++++------------- Assignment3/src/org/da/ass3/Connector.java | 12 +++---- 3 files changed, 20 insertions(+), 31 deletions(-) diff --git a/Assignment3/ass3.jar b/Assignment3/ass3.jar index c918bdf8c7f50f4e137096456536283a4de5ebe5..6b8fa90565dad8653998f2547ff86dfc56924a92 100644 GIT binary patch delta 7542 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 Date: Sun, 1 Jun 2014 15:19:54 +0200 Subject: [PATCH 03/14] Added levels to exit status and added time estimate --- Assignment3/ass3.jar | Bin 34327 -> 34394 bytes Assignment3/src/ProcessManager.java | 2 +- .../src/org/da/ass3/CandidateProcess.java | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Assignment3/ass3.jar b/Assignment3/ass3.jar index 6b8fa90565dad8653998f2547ff86dfc56924a92..a452a6ed49015ef72e667f7251e5b02e4f3a84fd 100644 GIT binary patch delta 7673 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 diff --git a/Assignment3/src/ProcessManager.java b/Assignment3/src/ProcessManager.java index facaa36..cf3f206 100644 --- a/Assignment3/src/ProcessManager.java +++ b/Assignment3/src/ProcessManager.java @@ -92,7 +92,7 @@ public static void main(String[] args) throws IOException { System.out.print("."); } System.out.println(); - System.out.println("Workload accepted: starting algorithm"); + System.out.println("Workload accepted: starting algorithm (est. time = " + (candidates * Math.log(candidates) * 0.1) + " seconds)"); try { Thread.sleep(2000); diff --git a/Assignment3/src/org/da/ass3/CandidateProcess.java b/Assignment3/src/org/da/ass3/CandidateProcess.java index 543f9bc..5a8b909 100644 --- a/Assignment3/src/org/da/ass3/CandidateProcess.java +++ b/Assignment3/src/org/da/ass3/CandidateProcess.java @@ -127,7 +127,7 @@ public void run(){ try { FileWriter fw = new FileWriter(myid + ".txt"); - fw.write("elected = " + elected); + fw.write("elected = " + elected + ", level = " + level); fw.close(); } catch (IOException e) { // TODO Auto-generated catch block From 65f846e5f1af5ec06a1c89da49f7b468b05c1222 Mon Sep 17 00:00:00 2001 From: qstokkink Date: Sun, 1 Jun 2014 15:57:14 +0200 Subject: [PATCH 04/14] Keep track of total time taken --- Assignment3/ass3.jar | Bin 34394 -> 34602 bytes Assignment3/src/ProcessManager.java | 5 +++-- .../src/org/da/ass3/CandidateProcess.java | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Assignment3/ass3.jar b/Assignment3/ass3.jar index a452a6ed49015ef72e667f7251e5b02e4f3a84fd..a3a32697dcd2ab1b65716b20500b3ff07df3f840 100644 GIT binary patch delta 8323 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 diff --git a/Assignment3/src/ProcessManager.java b/Assignment3/src/ProcessManager.java index cf3f206..06a8633 100644 --- a/Assignment3/src/ProcessManager.java +++ b/Assignment3/src/ProcessManager.java @@ -92,7 +92,7 @@ public static void main(String[] args) throws IOException { System.out.print("."); } System.out.println(); - System.out.println("Workload accepted: starting algorithm (est. time = " + (candidates * Math.log(candidates) * 0.1) + " seconds)"); + System.out.println("Workload accepted: starting algorithm (est. time = " + ((candidates * Math.log(candidates) + candidates) * 0.1) + " seconds)"); try { Thread.sleep(2000); @@ -110,6 +110,7 @@ public static void main(String[] args) throws IOException { /* * Gather data */ + long startTime = System.currentTimeMillis(); System.out.print("Waiting for processes to finish (PRESS ANYKEY+ENTER TO ABORT) "); String result = ""; for (long i = 1; i <= candidates; i++) { @@ -148,7 +149,7 @@ public static void main(String[] args) throws IOException { fname.delete(); } - System.out.println("DONE"); + System.out.println("DONE, time taken = " + ((System.currentTimeMillis()-startTime)/1000.0d) + " seconds"); System.out.print(result); } diff --git a/Assignment3/src/org/da/ass3/CandidateProcess.java b/Assignment3/src/org/da/ass3/CandidateProcess.java index 5a8b909..5dc2b1f 100644 --- a/Assignment3/src/org/da/ass3/CandidateProcess.java +++ b/Assignment3/src/org/da/ass3/CandidateProcess.java @@ -71,7 +71,7 @@ public void kill(){ @Override public void run(){ - while (alive && !untraversed.isEmpty() && !killed){ + while (alive && ((!untraversed.isEmpty() && !killed)||!messageQueue.isEmpty())){ long link = untraversed.peek(); try { connector.send(link, new CandidateMessage(level, myid)); From 4c95d8e9dda686df0ce943456489cc35643c2f65 Mon Sep 17 00:00:00 2001 From: qstokkink Date: Sun, 1 Jun 2014 17:31:20 +0200 Subject: [PATCH 05/14] Added experimental results --- Assignment3/ass3.jar | Bin 34602 -> 34586 bytes Assignment3/experiments/1-1.txt | 6 ++ Assignment3/experiments/10-10.txt | 15 +++ Assignment3/experiments/100-100.txt | 105 +++++++++++++++++++ Assignment3/experiments/130-130.txt | 135 ++++++++++++++++++++++++ Assignment3/experiments/150-150.txt | 155 ++++++++++++++++++++++++++++ Assignment3/experiments/20-20.txt | 25 +++++ Assignment3/experiments/30-30.txt | 35 +++++++ Assignment3/experiments/50-50.txt | 55 ++++++++++ Assignment3/experiments/80-80.txt | 85 +++++++++++++++ 10 files changed, 616 insertions(+) create mode 100644 Assignment3/experiments/1-1.txt create mode 100644 Assignment3/experiments/10-10.txt create mode 100644 Assignment3/experiments/100-100.txt create mode 100644 Assignment3/experiments/130-130.txt create mode 100644 Assignment3/experiments/150-150.txt create mode 100644 Assignment3/experiments/20-20.txt create mode 100644 Assignment3/experiments/30-30.txt create mode 100644 Assignment3/experiments/50-50.txt create mode 100644 Assignment3/experiments/80-80.txt diff --git a/Assignment3/ass3.jar b/Assignment3/ass3.jar index a3a32697dcd2ab1b65716b20500b3ff07df3f840..a956989485de5879612d155cbc57178dfe55ba4c 100644 GIT binary patch delta 3488 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 delta 3506 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 C- Date: Mon, 2 Jun 2014 10:42:44 +0200 Subject: [PATCH 06/14] Fixed some edge cases --- Assignment3/ass3.jar | Bin 34586 -> 34595 bytes .../src/org/da/ass3/CandidateProcess.java | 19 ++++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Assignment3/ass3.jar b/Assignment3/ass3.jar index a956989485de5879612d155cbc57178dfe55ba4c..0ce4abcd03a397d60ba8866b33903aaa782858d7 100644 GIT binary patch delta 4299 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 Bfp!1@ delta 4263 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 p%o547D4+x allIds){ untraversed.add(remaining.remove(index)); } - untraversed.remove((Long) myid); + //untraversed.remove((Long) myid); } /** @@ -72,13 +72,16 @@ public void kill(){ @Override public void run(){ while (alive && ((!untraversed.isEmpty() && !killed)||!messageQueue.isEmpty())){ - long link = untraversed.peek(); - try { - connector.send(link, new CandidateMessage(level, myid)); - } catch (MalformedURLException | RemoteException - | NotBoundException e) { - e.printStackTrace(); - break; + long link = 0; + if (!killed){ + link = untraversed.peek(); + try { + connector.send(link, new CandidateMessage(level, myid)); + } catch (MalformedURLException | RemoteException + | NotBoundException e) { + e.printStackTrace(); + break; + } } boolean R = true; while (R){ From 8a772e81e7aa85cccccb08677320e0a3c1cd2c4b Mon Sep 17 00:00:00 2001 From: Quinten Stokkink Date: Mon, 2 Jun 2014 11:05:42 +0200 Subject: [PATCH 07/14] Added start of report --- Assignment3/doc/report.tex | 47 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 Assignment3/doc/report.tex diff --git a/Assignment3/doc/report.tex b/Assignment3/doc/report.tex new file mode 100644 index 0000000..9d3c91a --- /dev/null +++ b/Assignment3/doc/report.tex @@ -0,0 +1,47 @@ +\documentclass[12pt]{article} + +\usepackage{amsmath} +\usepackage[hidelinks]{hyperref} +\usepackage{fancyhdr} +\usepackage{color} +\usepackage{titlesec} +\usepackage[pdftex]{graphicx} +\usepackage{datetime} + +\pagestyle{fancy} +\fancyhf{} + +% custom section +\titlespacing{\section}{0pt}{*2}{0pt} +\titleformat{\section}[runin] +{\normalfont\bfseries} +{\thesection. } +{0pt} +{}[\\] + +\begin{document} + +\fancyhead[L] +{ +\textbf{Distributed Algorithms: Assignment 3 C}\\ +Christos Froussios (4322754) \& Quinten Stokkink (4016270)\\ +\today +} +\setlength\headheight{0.8in} +\setlength\topmargin{-0.6in} +\setlength\textheight{9.0in} +\setlength\parindent{0pt} + +\section{Introduction} +In this report we present the results of our implemenation of Afek \& Gafni's algorithm for election in a completely connected network. +We use a slightly modified version of the algorithm to avoid drowning single processes in so many messages they slow down the +whole algorithm. This involves selecting from the untraversed link pool in a random order and a timeout between trying to capture +the same node successively. Furthermore we demote candidate processes that have been killed and have no outstanding messages +to just an ordinary process. + +\section{Methodology} + +\section{Results} + + +\end{document} \ No newline at end of file From 9c064d4af16b7666581e2a23294eb8b2a5d2d1d8 Mon Sep 17 00:00:00 2001 From: Quinten Stokkink Date: Mon, 2 Jun 2014 11:42:39 +0200 Subject: [PATCH 08/14] Added images to report --- Assignment3/doc/maxlevel.png | Bin 0 -> 8070 bytes Assignment3/doc/report.tex | 13 +++++++++++++ Assignment3/doc/results.xlsx | Bin 0 -> 14798 bytes Assignment3/doc/totaltime.png | Bin 0 -> 7150 bytes 4 files changed, 13 insertions(+) create mode 100644 Assignment3/doc/maxlevel.png create mode 100644 Assignment3/doc/results.xlsx create mode 100644 Assignment3/doc/totaltime.png diff --git a/Assignment3/doc/maxlevel.png b/Assignment3/doc/maxlevel.png new file mode 100644 index 0000000000000000000000000000000000000000..109a3fc9ac447a2cd8f0c5536ba8e8f11e651de1 GIT binary patch literal 8070 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 S2)sK7nHgE$z+Joh?Ee5D`ix2d literal 0 HcmV?d00001 diff --git a/Assignment3/doc/report.tex b/Assignment3/doc/report.tex index 9d3c91a..e52117e 100644 --- a/Assignment3/doc/report.tex +++ b/Assignment3/doc/report.tex @@ -43,5 +43,18 @@ \section{Methodology} \section{Results} +\begin{figure}[h] + \centering + \includegraphics{totaltime.png} + \caption{The total time taken for the algorithm to terminate versus the amount of processes} + \label{fig:totaltime} +\end{figure} + +\begin{figure}[h] + \centering + \includegraphics{maxlevel.png} + \caption{The maximum level achieved versus the amount of processes} + \label{fig:maxlevel} +\end{figure} \end{document} \ No newline at end of file diff --git a/Assignment3/doc/results.xlsx b/Assignment3/doc/results.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..63d520608e0bb6917fe150d270f769bac33257fa GIT binary patch literal 14798 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 Bx=R26 literal 0 HcmV?d00001 diff --git a/Assignment3/doc/totaltime.png b/Assignment3/doc/totaltime.png new file mode 100644 index 0000000000000000000000000000000000000000..c2529bf39a9b1f85cc88fde6bd688f3e28a3b68b GIT binary patch literal 7150 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 QcXS{lJ#*cfo44=%2T4&{G5`Po literal 0 HcmV?d00001 From b34f519a36f9bef4d489dd0cf81d87fcfa513e19 Mon Sep 17 00:00:00 2001 From: Quinten Stokkink Date: Mon, 2 Jun 2014 12:13:21 +0200 Subject: [PATCH 09/14] Added text to results section --- Assignment3/doc/report.tex | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/Assignment3/doc/report.tex b/Assignment3/doc/report.tex index e52117e..39b7535 100644 --- a/Assignment3/doc/report.tex +++ b/Assignment3/doc/report.tex @@ -40,17 +40,35 @@ \section{Introduction} to just an ordinary process. \section{Methodology} +To test our algorithm we simulated a fully distributed environment by giving each process its own JVM environment. +This is quite costly for the simulating machine, but also far more accurate than testing between two or more +physical machines as every process has access to the exact same capabilities (and delays). +In fact through our tests we found that as the memory footprint nears 4 GB and the amount of threads gets close +to 10,000 our simulating machine starts locking up. + +\quad As for our testing methodology we decided to always test the worst case, which occurs when all processes present themselves +as candidate processes and start the algorithm. By testing the worst cases we should see a curve of the runtime +that is in the order of $O(n log(n))$ as advertised by the algorithm. \section{Results} +We have run tests for the amounts of processes (which are both candidates and ordinary processes at the same time) of: +1, 10, 20, 30, 50, 80, 100, 130 and 150. For each of these processes we then reported the level it reached and whether +it was elected (to verify correctness). For each of these experiments we also recorded the total time. + +\quad The results of the running time experiments are visualized in \autoref{fig:totaltime} and the measurements of the +maximum levels are visualized in \autoref{fig:maxlevel}. We see that the running time does seem to follow an $O(n log(n))$ curve +and that the maximum levels reached seem to follow a linear curve. + +\quad Note that due to our optimization, candidates are only killed once. Therefore it does not make much sense to report on this. -\begin{figure}[h] +\begin{figure}[p] \centering \includegraphics{totaltime.png} \caption{The total time taken for the algorithm to terminate versus the amount of processes} \label{fig:totaltime} \end{figure} -\begin{figure}[h] +\begin{figure}[p] \centering \includegraphics{maxlevel.png} \caption{The maximum level achieved versus the amount of processes} From 132edf2297514c8414e5082d862dfa07a3f1f126 Mon Sep 17 00:00:00 2001 From: Quinten Stokkink Date: Mon, 2 Jun 2014 12:35:35 +0200 Subject: [PATCH 10/14] Added total captures to report --- Assignment3/doc/report.tex | 9 +++++++++ Assignment3/doc/results.xlsx | Bin 14798 -> 16076 bytes Assignment3/doc/totalcapture.png | Bin 0 -> 4367 bytes 3 files changed, 9 insertions(+) create mode 100644 Assignment3/doc/totalcapture.png diff --git a/Assignment3/doc/report.tex b/Assignment3/doc/report.tex index 39b7535..1630215 100644 --- a/Assignment3/doc/report.tex +++ b/Assignment3/doc/report.tex @@ -58,6 +58,8 @@ \section{Results} \quad The results of the running time experiments are visualized in \autoref{fig:totaltime} and the measurements of the maximum levels are visualized in \autoref{fig:maxlevel}. We see that the running time does seem to follow an $O(n log(n))$ curve and that the maximum levels reached seem to follow a linear curve. +Furthermore, \autoref{fig:captures} visualizes the total amount of captures performed in the algorithm versus the amount of +processes. While this series seems to follow a linear curve it suffers from a lot more noise than the other two metrics. \quad Note that due to our optimization, candidates are only killed once. Therefore it does not make much sense to report on this. @@ -75,4 +77,11 @@ \section{Results} \label{fig:maxlevel} \end{figure} +\begin{figure}[p] + \centering + \includegraphics{totalcapture.png} + \caption{The total amount of caputures in the algorithm versus the amount of processes} + \label{fig:captures} +\end{figure} + \end{document} \ No newline at end of file diff --git a/Assignment3/doc/results.xlsx b/Assignment3/doc/results.xlsx index 63d520608e0bb6917fe150d270f769bac33257fa..62c81ad75ebd627486e33b0288d6e9de61704c78 100644 GIT binary patch delta 7989 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 K*d_Y6_x}KOrPn_I delta 6728 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%0AA~^B|Cv~_6}H!jXPp=Mw)ZFo`_8g z-W>H8xijtGlHXgh;_ScTo{OEIfMu{5EiWRaxB5teY~K^F;>%e5KpJaYY@Ey_R8BLI z-Fvim4vQ3yuG_t14jOrUo+Wbm0Hw`DhI$}PgpL;M#Ku#$&kR#VYl^U8A$7F67|9}+ zG;W9={^qSV6>*+_q=RP9uzx>(p}g$E>>LU}FSKR&7?;h_2S#`v^gR(>KMv9ZEm?fk zu99_E)CQz*K3Xr5{ryGBFB*HdWWCw|3iblT{o2^q81d>&4W;-bM9JO`%wciv^$M*W z*(S6etR2&)@sB=PHOh(-MOlhVvoW8u=J5dbM>B7bBaAlX*o8Hnq* zjAPp;Znwc46llb&ot5MVO+l!nz#2yTh1A*1O(SHEO_$e{Ji&ilt;7c>=3@MSsZUxj zST>0N!^6Le;bMXR{l7qAp6FoBpt!`vaBqMB0Ez)bjS3Ox!g_)FA})!wj@lAuqy3kj z0|3l_5yHRiGYJYLDg2j4Q)8DyQMD4nC?W}Jtgk3n3GRPJ*zz!x1t|;-J{@XVl7aSLRsjHz{kJIKH3N!9ijDUFf`I>)c*Xb^3vki?QxdNK z-47}G|JRTJM}7LM;h*TafC~T|JpBIxpEyw)QnJ|J9--K!;k5s`fPayLJ2n77^52F4 xA^a#CX(=v%5CGuk^w`?c$y&kQ65;a5&)G>^9q+Gg008>8*ZwtvE&R{ye*mrsaSZ?f diff --git a/Assignment3/doc/totalcapture.png b/Assignment3/doc/totalcapture.png new file mode 100644 index 0000000000000000000000000000000000000000..1ae3a4a4e056d98be0625b931e78a571ab293947 GIT binary patch literal 4367 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 Date: Mon, 2 Jun 2014 12:38:53 +0200 Subject: [PATCH 11/14] Fixed spelling error and added pdf --- Assignment3/doc/report.pdf | Bin 0 -> 77139 bytes Assignment3/doc/report.tex | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 Assignment3/doc/report.pdf diff --git a/Assignment3/doc/report.pdf b/Assignment3/doc/report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..93a8ad98c4232227ac6174370759eaf59a9d85f0 GIT binary patch literal 77139 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 literal 0 HcmV?d00001 diff --git a/Assignment3/doc/report.tex b/Assignment3/doc/report.tex index 1630215..d6cfdb4 100644 --- a/Assignment3/doc/report.tex +++ b/Assignment3/doc/report.tex @@ -80,7 +80,7 @@ \section{Results} \begin{figure}[p] \centering \includegraphics{totalcapture.png} - \caption{The total amount of caputures in the algorithm versus the amount of processes} + \caption{The total amount of captures in the algorithm versus the amount of processes} \label{fig:captures} \end{figure} From 10ce85eebbe0777fc90e0c15f95b776d7f9941da Mon Sep 17 00:00:00 2001 From: Quinten Stokkink Date: Mon, 2 Jun 2014 12:40:56 +0200 Subject: [PATCH 12/14] Added latest version of compiled report --- Assignment3/doc/report.pdf | Bin 77139 -> 77142 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Assignment3/doc/report.pdf b/Assignment3/doc/report.pdf index 93a8ad98c4232227ac6174370759eaf59a9d85f0..dbe60a2b340f6fa0dff17be4e74dd20bf0ee3146 100644 GIT binary patch delta 1110 zcmcb7i{;uamJOc%%q9v7lOOC>ug?wg^}k~vu=jcRnUzILj`i$M%Fh>xU+b7-IS zOy|IZ!n^a@E|}LJ3kc6#wkC1<^1bh87i6@{XQm0EN?IK+i$icYn}Y`v*{ ztgGzU<(lo~G}UexvOUWY*}26cee#0!Ty;O!X$2qp*L|lbF!$i6URT3Tv!=z{7VHet zODny)^I6LyKZkFe<@RM?zqd-X&YLu8wo;`xOZ`g+0r_P2!=9RNZasM^xp0yHq*GUq z9sJFc>u7nrH|)v$2Zog%1(DCP?hB<(@HRfIDl~&d(LHHuSYb$3(*7OUqA}H{`rQ-G z$u?f;dw#^^`-a?a$??I$UdFE3*WETeGGOQ7wwtp2NBFk7H_JTRetgrv`0mto2NvfV z)4P)@A~a4Le_itE^ZO$K-w*G2a5yS+;qub?(T`(#mi@W)+eG<7U*7_`j%J>nhi!hY z7mn7=ePVBuzOQq$LSU8C6&5Y*LS7|c(X_*)*7=VC6o&pz`VQykY;kLFO4lMEzx~$Vs2qzhGw9Ng@G};W6aD9&CwlWW@d_Ep1H9F zT1eI#7?_)wnWI}`ZenSUZi%_6A!gK=8evffjCnLio0}S2pgYjq)YQ;$`ZgU#`#2{< zM?*7n3o}z!12aPtOBW|c6Eimxb8`zPBST9IM>_=@CqhbM73}P|ic1oUN-By{)40q{ O%`Hs1R8?L5-M9expl9L$ delta 1012 zcmcb1i{BTBh+T`g*hY z?#_ufvUDpC|NEP9+O1nbJ?MOY|9O?hcbXU8KiQ@d9vv8<_~V#_=jm{tM(f2ZL;I{F zFKk+N{>?t#!i@U|ubtG3_r@j~ls9dm{^YAt2=%YEl-9!yeNDe`X9^!iVX zw`ZKsZFuHXymmTUc{^kDj|S0A3AfL1n*9(o4Syjnaly+g+hmziWBjs&n~!gNn^~fh z^j)%|>tBV7&xT~CXITQRTMWV%FDz!auZ<6vEc&mSyK~33E1!B<4QHA)HE#L>XY(uglkeBWwm806*-@i?(ps?o1@np@64nxZelOQ4pVxQD{?ie*^OnW0 z@?~WqmdAU;X3T#fT&c1_r?~gMi{yh#XG%Cd+?)?EhAs`2nKJ9j`nr;?d(~_F-4pa= z8?W?;s!E5zWn@6zYJ>dd@E2+&n4y(_vWm6t#wvBjb&Q77BQ+TPm<%nZuhd}l zXEdAsQ-g6cqsjEOnv8y8#uf?&AfS+^zy)TQn;07zOc&H*6lOG-uByeTCT4Dlp~TF< zV0xk!qcx+^^toD$$v}!x8>qo-x~Mjzx~K`7dLvUa6T|6&Koz!z7*dwTrs!g3rY2?> zVwRRB(-(q_FhG+swy?B7_k@YLg@G}eIuoFf;q;FnBhYO$Gc(07!ra)x2;C}k6Ekz; z>5e*BJYsHYh#8coM&{@qHa9gkv79~;XoM)bE6hzz4J@Yb)M2!bGca~CFg0>>F*UX{ zaj`UWwJ>rsa5Z#sGIKO@HnFs{Q?PL&q$F0s&W@|NB(bQZq9`?u%iPr5!iY;%)z#mP F3jkG|SF8X4 From 5bd5b49e5d2022e81190e93a619bb5f878e5bd98 Mon Sep 17 00:00:00 2001 From: Quinten Stokkink Date: Mon, 2 Jun 2014 14:00:41 +0200 Subject: [PATCH 13/14] Added sentence about random delays --- Assignment3/doc/report.pdf | Bin 77142 -> 77264 bytes Assignment3/doc/report.tex | 5 +++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Assignment3/doc/report.pdf b/Assignment3/doc/report.pdf index dbe60a2b340f6fa0dff17be4e74dd20bf0ee3146..3c2e3a47b7cec0dad55f07d5a466a4ed23bb9d9b 100644 GIT binary patch delta 5202 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 DD5L+m diff --git a/Assignment3/doc/report.tex b/Assignment3/doc/report.tex index d6cfdb4..375f652 100644 --- a/Assignment3/doc/report.tex +++ b/Assignment3/doc/report.tex @@ -48,7 +48,8 @@ \section{Methodology} \quad As for our testing methodology we decided to always test the worst case, which occurs when all processes present themselves as candidate processes and start the algorithm. By testing the worst cases we should see a curve of the runtime -that is in the order of $O(n log(n))$ as advertised by the algorithm. +that is in the order of $O(n log(n))$ as advertised by the algorithm. We also simulate message delay with a normal +distribution with mean 15 ms and standard deviation of 5 ms. \section{Results} We have run tests for the amounts of processes (which are both candidates and ordinary processes at the same time) of: @@ -63,7 +64,7 @@ \section{Results} \quad Note that due to our optimization, candidates are only killed once. Therefore it does not make much sense to report on this. -\begin{figure}[p] +\begin{figure}[h] \centering \includegraphics{totaltime.png} \caption{The total time taken for the algorithm to terminate versus the amount of processes} From 6216daa49b67f3200eb88c66c838c9550661d466 Mon Sep 17 00:00:00 2001 From: Chris Froussios Date: Mon, 2 Jun 2014 14:49:28 +0200 Subject: [PATCH 14/14] Added readme --- Assignment3/readme.txt.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 Assignment3/readme.txt.txt diff --git a/Assignment3/readme.txt.txt b/Assignment3/readme.txt.txt new file mode 100644 index 0000000..5050e9c --- /dev/null +++ b/Assignment3/readme.txt.txt @@ -0,0 +1,8 @@ +How to run + +Execute the main method of the ProcessManager with arguments: + + + +Note: +For each process, the ProcessManager invokes the compiled .jar of our code. Make sure that ass3.jar exists to execute. \ No newline at end of file