Documentation
¶
Index ¶
Constants ¶
const ( // SYMPI_INSTALL_DIR_ENV is the name of the environment variable to set the // directory used to install MPI and store container images SYMPI_INSTALL_DIR_ENV = "SYMPI_INSTALL_DIR" // DefaultSympiInstallDir is the name of the default directory in $HOME to store // image containers and install MPI DefaultSympiInstallDir = ".sympi" // CmdTimeout is the maximum time we allow a command to run CmdTimeout = 30 // DefaultUbuntuDistro is the default Ubuntu distribution we use DefaultUbuntuDistro = "disco" // SingularityInstallDirPrefix is the default prefix for the directory name to use for an installation of Singularity SingularityInstallDirPrefix = "install_singularity-" // SingularityBuildDirPrefix is the default prefix for the directory name where Singularity is built SingularityBuildDirPrefix = "build_singularity-" // SingularityScratchDirPrefix is the default prefix for the directory name to use as scratch for preparing Singularity SingularityScratchDirPrefix = "scratch_singularity-" // MPIInstallDirPrefix is the default prefix for the directory name where a version of MPI is installed MPIInstallDirPrefix = "mpi_install_" // MPIBuildDirPrefix is the default prefix for the directory name where a version of MPI is built MPIBuildDirPrefix = "mpi_build_" // ContainerInstallDirPrefix is the default prefix for the directory name where an MPI-based container is stored ContainerInstallDirPrefix = "mpi_container_" )
Variables ¶
This section is empty.
Functions ¶
func CompatibleArch ¶
CompatibleArch checks whether the local architecture is compatible with a list of architectures.
The list of architectures is for example the output of sy.GetSIFArchs()
func GetDistroID ¶
GetDistroID returns a formatted version of the value of TargetDistro.
This is mainly used to have a standard way to set directory and file names
func GetMPIConfigFileName ¶
GetMPIConfigFileName return the name of the configuration file for a specific implementation of MPI
func GetSympiDir ¶
func GetSympiDir() string
GetSympiDir returns the directory where MPI is installed and container images stored
func IsPersistent ¶
IsPersistent checks whether the system is setup for persistent installs or not
func ParseDistroID ¶
ParseDistroID parses the string we use to identify a specific distro into a distribution name and its version
Types ¶
type Config ¶
type Config struct { // ConfigFile is the path to the configuration file describing experiments ConfigFile string // TargetDistro is the Linux distribution identifier that we will be used in the containers TargetDistro string // HostDistro is the Linux distribution on the host HostDistro string // BinPath is the path to the current binary BinPath string // CurPath is the current path CurPath string // EtcDir is the path to the directory with the configuration files EtcDir string // TemplateDir is the path where the template are TemplateDir string // ScratchDir is the path where a copy generated files are saved for debugging ScratchDir string // SedBin is the path to the sed binary SedBin string // SingularityBin is the path to the singularity binary SingularityBin string // OutputFile is the path the output file OutputFile string // Netpipe specifies whether we need to execute NetPipe as test NetPipe bool // IMB specifies whether we need to execute IMB as test IMB bool // OfiCfgFile is the absolute path to the OFI configuration file OfiCfgFile string // Ifnet is the network interface to use (e.g., required to setup OFI) Ifnet string // Verbose mode is active/inactive Verbose bool // Debug mode is active/inactive Debug bool // Nrun specifies the number of iterations, i.e., number of times the test is executed Nrun int // AppContainizer is the path to the configuration for automatic containerization of app AppContainizer string // Registry is the optinal user registry where images can be uploaded Registry string // Upload specifies whether images needs to be uploaded to the registry Upload bool // Persistent specifies whether we need to keep the installed software (MPI and containers) Persistent string // SlurmEnable specifies whether Slurm is currently enabled SlurmEnabled bool // IBEnables specifies whether Infiniband is currently enabled IBEnabled bool // SyConfigFile SyConfigFile string // Nopriv specifies whether we need to use the '-u' option when running singularity Nopriv bool // SudoSyCmds is the list of Singularity commands that need to be executed with sudo SudoSyCmds []string // SudoBin is the path to sudo on the host SudoBin string }
Config captures some system configuration aspects that are necessary to run experiments
type GetConfigFn ¶
type GetConfigFn func() error
GetConfigFn is a "function pointer" that lets us get the configuration of a given job manager
type SetConfigFn ¶
type SetConfigFn func() error
SetConfigFn is a "function pointer" that lets us store the configuration of a given job manager