- 22 May, 2019 1 commit
-
-
Valentin Reis authored
-
- 03 May, 2019 3 commits
-
-
Swann Perarnau authored
Instances in singularity are basically the same as being able to create an empty container and then run something in it, so we can have the same thing as with nodeos. One main issue with the code as is: we should probably refactor the container_manager code to modify the manifest on the fly according to the options listed in it. It would make it easy to pass along stuff like PWD, necessary binds and so on.
-
Swann Perarnau authored
If monitoring is active, make sure to export the ARGO_NRM_DOWNSTREAM_EVENT_URI variable required by libnrm. Fix #49.
-
Florence Monna authored
The daemon can be configured to launch singularity containers. In such case, the manifest must contain an image section. Note that this doesn't support any resource management with singularity, since that stuff is only available as root. We will add a second container runtime option to support it later.
-
- 24 Apr, 2019 1 commit
-
-
Valentin Reis authored
-
- 26 Feb, 2019 1 commit
-
-
Swann Perarnau authored
Add a "monitoring" section to the manifest, that allows users to modify libnrm through environment variables.
-
- 15 Feb, 2019 1 commit
-
-
Swann Perarnau authored
BSD3, as discussed.
-
- 08 Feb, 2019 1 commit
-
-
Swann Perarnau authored
For some reason this seems to be triggering a leak of a open file descriptor, even though it should be garbage collected. As for why it's there...well there was a time when I had hoped of implementing support for stdin.
-
- 06 Feb, 2019 5 commits
-
-
Swann Perarnau authored
Add a container runtime that doesn't create containers, but can still launch commands. That should make it possible, once we figure out how to change it in the configuration, to actually run the NRM without a setuid binary.
-
Swann Perarnau authored
Extract the container runtime interface from the container manager, and use a hierarchy of classes to enforce a runtime interface that makes sense. This will allow us to create alternative runtime implementations without major changes to the container manager code.
-
Swann Perarnau authored
Just to make it easy to debug binding issues.
-
Swann Perarnau authored
!27 replaced the resource field of the `container` named tuple by a dictionary. Restore the old type, a `resources` named tuple and make sure to propagate this across all the code.
-
Swann Perarnau authored
Refactor the container creation code to isolate the building/retrieving of a container namedtuple out of the core container creation code. This simplifies quite a bit the different branches of this code, and makes the core create method almost entirely dedicated to just launching a command.
-
- 05 Feb, 2019 4 commits
-
-
Swann Perarnau authored
Some of these commands prefix were in a bit of a weird order. In particular, it makes sense to have perfwrapper at the end.
-
Swann Perarnau authored
-
Swann Perarnau authored
!27 caused the perfwrapper to only be activated for the command that creates a container, and never for the other commands launched in an already running container. This patch restore this feature.
-
Swann Perarnau authored
The container creation code was starting to repeat the same logic for testing that a container manifest was enabling a specific feature. Instead we add a method to the image manifest to check for that. Also adds tests for that feature.
-
- 04 Feb, 2019 1 commit
-
-
Valentin Reis authored
-
- 21 Jan, 2019 3 commits
-
-
Sridutt Bhalachandra authored
Made necesseary fixes required to make the aggregative downstream api integration to work with the new downstream messaging layer. Also,fixed the case where daemon crashed when an application message (from libnrm using pmpi) was received after container was killed run_policy on all containers removed as the controller no longer has application manager info Any other refactoring and fixes required (check merge request discussion) See Issues #13, #20 and Merge !41
-
Sridutt Bhalachandra authored
Added support for pinning process/task to a core. This is important for allowing the use of power policies that use contextual information from an application phase and use it for computing frequency levels for the next phase. In absence of process/task pinning, the contextual information obtained does not serve any value as it is not representative of application phase behavior on a core as the processes and task can migrate during the next phase. See Issue #20
-
Sridutt Bhalachandra authored
Fixed the interaction of the multi-node support feature (#17) with the new messaging layer feature. Also, added any other fixes required to make the libnrm work with the Aggregative downstream API
-
- 18 Dec, 2018 1 commit
-
-
Swann Perarnau authored
Add a config option to specify the location of the PMPI LD_PRELOAD library available in libnrm. This should make it easier to use this library.
-
- 12 Dec, 2018 2 commits
-
-
Valentin Reis authored
Fixing a bug introduced by the 'progress-report' branch in a recent previous commit. The process object is the result of a tornado spawn, so the call has to be slightly different than what was there.
-
Valentin Reis authored
This commit adds a command-line interface to `daemon`: ``` usage: daemon [-h] [-c FILE] [-d] [--nrm_log NRM_LOG] [--hwloc HWLOC] [--argo_nodeos_config ARGO_NODEOS_CONFIG] [--perf PERF] [--argo_perf_wrapper ARGO_PERF_WRAPPER] optional arguments: -h, --help show this help message and exit -c FILE, --configuration FILE Specify a config json-formatted config file to override any of the available CLI options. If an option is actually provided on the command-line, it overrides its corresponding value from the configuration file. -d, --print_defaults Print the default configuration file. --nrm_log NRM_LOG Main log file. Override default with the NRM_LOG. environment variable --hwloc HWLOC Path to the hwloc to use. This path can be relative and makes uses of the $PATH if necessary. Override default with the HWLOC environment variable. --argo_nodeos_config ARGO_NODEOS_CONFIG Path to the argo_nodeos_config to use. This path can be relative and makes uses of the $PATH if necessary. Override default with the ARGO_NODEOS_CONFIG environment variable. --perf PERF Path to the linux perf tool to use. This path can be relative and makes uses of the $PATH if necessary. Override default with the PERF environment variable. --argo_perf_wrapper ARGO_PERF_WRAPPER Path to the linux perf tool to use. This path can be relative and makes uses of the $PATH if necessary. Override default with the PERFWRAPPER environment variable. ```
-
- 10 Dec, 2018 1 commit
-
-
Valentin Reis authored
- added correct SIGINT/process ending handling to cmd - fixed kill/list containers - added ZMQ_LINGER 0 to the socket options.
-
- 21 Oct, 2018 1 commit
-
-
Swann Perarnau authored
Replace the fragile upstream communications with the new messaging layer, improving the stability and performance of this API. NOTE: this breaks previous clients NOTE: this patch is missing client tracking, to handle children signals.
-
- 17 Oct, 2018 1 commit
-
-
Sridutt Bhalachandra authored
Added multi- node and process support that will allow launching of multiple processes within a container. This is important for enabling use of NRM with MPI applications with multiple processes in a container and thus enabling multi-node executions See Issue #17
-
- 15 Aug, 2018 1 commit
-
-
Sridutt Bhalachandra authored
Added power profile data to the exit event response at the end of application run. The profile data is generated using functions from `SensorManager` and is obtained using the sensor update in `Daemon` See Issue #12
-
- 14 Aug, 2018 1 commit
-
-
Sridutt Bhalachandra authored
Added profiling parameter to manifest file that can be used to specify if power profile is required for a container/application. Also, changed namedtuple "Container" key from "powerpolicy" to "power" and made changes to reflect this See Issue #12
-
- 10 Aug, 2018 3 commits
-
-
Sridutt Bhalachandra authored
Added initialization of power policy using the manifest file and fixed appropriate TODOs in `PowerPolicyManager` (PPM) Class using container information (except adding new power policies). Also, fixed PPM to use None instead of NONE See Issue #10
-
Sridutt Bhalachandra authored
The container creation information (resources and powerpolicy) added to `ContainerManager` class can be used to intiliaze power policy parameters in the present and more in the future See Issue #10
-
Sridutt Bhalachandra authored
Added damper and slowdown parameters to manifest file that can be used to initiliaze power policy parameters See Issue #10
-
- 17 Jul, 2018 1 commit
-
-
Sridutt Bhalachandra authored
On enabling the powepolicy manifest option and setting the policy parameter to any valid value (except "NONE") the application library providing contextual information is loaded using LD_PRELOAD See issue #10
-
- 21 Dec, 2017 1 commit
-
-
Swann Perarnau authored
Small fixes to correct for wrong actions on power control over a real load.
-
- 19 Dec, 2017 3 commits
-
-
Kamil Iskra authored
-
Kamil Iskra authored
-
Swann Perarnau authored
This patch fixes the daemon code to include the container uuid in the environment of the command, while changing that environment variable to use a better suited name.
-
- 15 Dec, 2017 1 commit
-
-
Swann Perarnau authored
The daemon code was maintaining its own container tracker using pids, instead of using the one in the container manager. This patch removes this additional tracking, and let the daemon side deal with an actual namedtuple.
-
- 14 Dec, 2017 2 commits
-
-
Swann Perarnau authored
This patch propagates the process object into the container namedtuple, fix a couple of bad function calls and adapt the run command handler to use that process object instead of just the pid of it.
-
Swann Perarnau authored
Use the new argo_nodeos_config --exec feature in development. Allow us to delegate fork+attach+exec to argo_nodeos_config, and simplifying the create command as a result. We use tornado.process to wrap this command, as we want to able to stream stdout/stderr in the future. This patch also misuse, the 'pid' field of the container namedtuple to save the tornado.process.Subprocess object itself, so some functions need to be adapted.
-