From 95f65acf781b179d5eacb08185eae30b9e2e1ca0 Mon Sep 17 00:00:00 2001 From: Sander Vrijders Date: Wed, 15 Nov 2017 22:23:24 +0100 Subject: prototypes: Add parallel installation for Ouroboros This will install Ouroboros in parallel on the different nodes. --- rumba/prototypes/ouroboros.py | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'rumba/prototypes/ouroboros.py') diff --git a/rumba/prototypes/ouroboros.py b/rumba/prototypes/ouroboros.py index 0a67e9b..a09f570 100644 --- a/rumba/prototypes/ouroboros.py +++ b/rumba/prototypes/ouroboros.py @@ -23,9 +23,11 @@ # Foundation, Inc., http://www.fsf.org/about/contact/. # +import time + import rumba.ssh_support as ssh import rumba.model as mod -import time +import rumba.multiprocessing_utils as m_processing import rumba.log as log @@ -37,6 +39,13 @@ class Experiment(mod.Experiment): def __init__(self, testbed, nodes=None): mod.Experiment.__init__(self, testbed, nodes) + @staticmethod + def make_executor(node, packages, testbed): + def executor(commands): + ssh.aptitude_install(testbed, node, packages) + node.execute_commands(commands, time_out=None, use_proxy=True) + return executor + def prototype_name(self): return 'ouroboros' @@ -55,12 +64,19 @@ class Experiment(mod.Experiment): "git clone -b be git://ouroboros.ilabt.imec.be/ouroboros " + "~/ouroboros", "cd ~/ouroboros && mkdir build && cd build && " + - "cmake -DCMAKE_BUILD_TYPE=Debug .. && sudo make install"] + "cmake -DCMAKE_BUILD_TYPE=Debug .. && sudo make install " + + "-j$(nproc)"] + + names = [] + executors = [] + args = [] for node in self.nodes: - ssh.aptitude_install(self.testbed, node, packages) - ssh.execute_commands(self.testbed, node.ssh_config, - cmds, time_out=None) + executor = self.make_executor(node, packages, self.testbed) + names.append(node.name) + executors.append(executor) + args.append(cmds) + m_processing.call_in_parallel(names, args, executors) def create_ipcps(self): for node in self.nodes: -- cgit v1.2.3