Rsync workload outputs (#877)
* Use rsync to copy back workload results * Point to correct .ini file in runtime.ini * Download files with rsync (not upload) | Update docs
This commit is contained in:
parent
3500497a16
commit
8a67fc07d3
|
@ -5,6 +5,7 @@ import logging
|
||||||
from runtools.switch_model_config import AbstractSwitchToSwitchConfig
|
from runtools.switch_model_config import AbstractSwitchToSwitchConfig
|
||||||
from util.streamlogger import StreamLogger
|
from util.streamlogger import StreamLogger
|
||||||
from fabric.api import *
|
from fabric.api import *
|
||||||
|
from fabric.contrib.project import rsync_project
|
||||||
|
|
||||||
rootLogger = logging.getLogger()
|
rootLogger = logging.getLogger()
|
||||||
|
|
||||||
|
@ -296,7 +297,14 @@ class FireSimServerNode(FireSimNode):
|
||||||
## copy back files from inside the rootfs
|
## copy back files from inside the rootfs
|
||||||
with warn_only(), StreamLogger('stdout'), StreamLogger('stderr'):
|
with warn_only(), StreamLogger('stdout'), StreamLogger('stderr'):
|
||||||
for outputfile in jobinfo.outputs:
|
for outputfile in jobinfo.outputs:
|
||||||
get(remote_path=mountpoint + outputfile, local_path=job_dir)
|
rsync_cap = rsync_project(remote_dir=mountpoint + outputfile,
|
||||||
|
local_dir=job_dir,
|
||||||
|
ssh_opts="-o StrictHostKeyChecking=no",
|
||||||
|
extra_opts="-L",
|
||||||
|
upload=False,
|
||||||
|
capture=True)
|
||||||
|
rootLogger.debug(rsync_cap)
|
||||||
|
rootLogger.debug(rsync_cap.stderr)
|
||||||
|
|
||||||
## unmount
|
## unmount
|
||||||
with StreamLogger('stdout'), StreamLogger('stderr'):
|
with StreamLogger('stdout'), StreamLogger('stderr'):
|
||||||
|
@ -313,7 +321,14 @@ class FireSimServerNode(FireSimNode):
|
||||||
remote_sim_run_dir = """/home/centos/sim_slot_{}/""".format(simserverindex)
|
remote_sim_run_dir = """/home/centos/sim_slot_{}/""".format(simserverindex)
|
||||||
for simoutputfile in jobinfo.simoutputs:
|
for simoutputfile in jobinfo.simoutputs:
|
||||||
with warn_only(), StreamLogger('stdout'), StreamLogger('stderr'):
|
with warn_only(), StreamLogger('stdout'), StreamLogger('stderr'):
|
||||||
get(remote_path=remote_sim_run_dir + simoutputfile, local_path=job_dir)
|
rsync_cap = rsync_project(remote_dir=remote_sim_run_dir + simoutputfile,
|
||||||
|
local_dir=job_dir,
|
||||||
|
ssh_opts="-o StrictHostKeyChecking=no",
|
||||||
|
extra_opts="-L",
|
||||||
|
upload=False,
|
||||||
|
capture=True)
|
||||||
|
rootLogger.debug(rsync_cap)
|
||||||
|
rootLogger.debug(rsync_cap.stderr)
|
||||||
|
|
||||||
def get_sim_kill_command(self, slotno):
|
def get_sim_kill_command(self, slotno):
|
||||||
""" return the command to kill the simulation. assumes it will be
|
""" return the command to kill the simulation. assumes it will be
|
||||||
|
|
|
@ -23,7 +23,7 @@ switchinglatency=10
|
||||||
netbandwidth=200
|
netbandwidth=200
|
||||||
profileinterval=-1
|
profileinterval=-1
|
||||||
|
|
||||||
# This references a section from config_hwconfigs.ini
|
# This references a section from config_build_recipes.ini
|
||||||
# In homogeneous configurations, use this to set the hardware config deployed
|
# In homogeneous configurations, use this to set the hardware config deployed
|
||||||
# for all simulators
|
# for all simulators
|
||||||
defaulthwconfig=firesim-rocket-quadcore-nic-l2-llc4mb-ddr3
|
defaulthwconfig=firesim-rocket-quadcore-nic-l2-llc4mb-ddr3
|
||||||
|
|
|
@ -100,7 +100,7 @@ when a workload running on a simulated cluster with ``firesim runworkload``
|
||||||
completes, ``/etc/os-release`` will be copied out from each rootfs and placed
|
completes, ``/etc/os-release`` will be copied out from each rootfs and placed
|
||||||
in the job's output directory within the workload's output directory (See
|
in the job's output directory within the workload's output directory (See
|
||||||
the :ref:`firesim-runworkload` section). You can add multiple paths
|
the :ref:`firesim-runworkload` section). You can add multiple paths
|
||||||
here.
|
here. Additionally, you can use bash globbing for file names (ex: ``file*name``).
|
||||||
|
|
||||||
The ``common_simulation_outputs`` field is a list of outputs that the manager
|
The ``common_simulation_outputs`` field is a list of outputs that the manager
|
||||||
will copy off of the simulation host machine AFTER a simulation completes. In
|
will copy off of the simulation host machine AFTER a simulation completes. In
|
||||||
|
@ -111,7 +111,8 @@ full console output of the simulated system) and ``memory_stats.csv`` files
|
||||||
will be copied out of the simulation's base directory on the host instance and
|
will be copied out of the simulation's base directory on the host instance and
|
||||||
placed in the job's output directory within the workload's output directory
|
placed in the job's output directory within the workload's output directory
|
||||||
(see the :ref:`firesim-runworkload` section). You can add multiple
|
(see the :ref:`firesim-runworkload` section). You can add multiple
|
||||||
paths here.
|
paths here. Additionally, you can use bash globbing for file names
|
||||||
|
(ex: ``file*name``).
|
||||||
|
|
||||||
..
|
..
|
||||||
TODO: this is no longer relevant with firemarshal
|
TODO: this is no longer relevant with firemarshal
|
||||||
|
@ -125,7 +126,7 @@ paths here.
|
||||||
Non-uniform Workload JSON (explicit job per simulated node)
|
Non-uniform Workload JSON (explicit job per simulated node)
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
|
|
||||||
Now, we'll look at the ``ping-latency`` workload, which explicitly defines a
|
Now, we'll look at the ``ping-latency`` workload, which explicitly defines a
|
||||||
job per simulated node.
|
job per simulated node.
|
||||||
|
|
||||||
.. include:: /../deploy/workloads/ping-latency-firemarshal.json
|
.. include:: /../deploy/workloads/ping-latency-firemarshal.json
|
||||||
|
|
Loading…
Reference in New Issue