From f85c0a06f04c60ff02c68a23255e7a8b081ac494 Mon Sep 17 00:00:00 2001 From: lazariv <taras.lazariv@tu-dresden.de> Date: Thu, 26 Aug 2021 11:28:48 +0000 Subject: [PATCH] Fix spell checking --- .../docs/software/data_analytics.md | 4 +- .../software/data_analytics_with_python.md | 14 +++--- .../docs/software/data_analytics_with_r.md | 23 ++++----- .../software/data_analytics_with_rstudio.md | 2 +- .../docs/software/distributed_training.md | 20 ++++---- .../software/hyperparameter_optimization.md | 24 +++++----- .../software/python_virtual_environments.md | 18 +++---- doc.zih.tu-dresden.de/wordlist.aspell | 48 +++++++++++++++++++ 8 files changed, 101 insertions(+), 52 deletions(-) diff --git a/doc.zih.tu-dresden.de/docs/software/data_analytics.md b/doc.zih.tu-dresden.de/docs/software/data_analytics.md index b6b88dddb..31ce02047 100644 --- a/doc.zih.tu-dresden.de/docs/software/data_analytics.md +++ b/doc.zih.tu-dresden.de/docs/software/data_analytics.md @@ -9,7 +9,7 @@ The following tools are available in the ZIH system, among others: 1. [Python](data_analytics_with_python.md) 1. [R](data_analytics_with_r.md) -1. [Rstudio](data_analytics_with_rstudio.md) +1. [RStudio](data_analytics_with_rstudio.md) 1. [Big Data framework Spark](big_data_frameworks_spark.md) 1. [MATLAB and Mathematica](mathematics.md) @@ -28,7 +28,7 @@ Likewise software can be used within [containers](containers.md). For the transfer of larger amounts of data into and within the system, the [export nodes and data mover](../data_transfer/overview.md) should be used. -The data storage takes place in the [work spaces](../data_lifecycle/workspaces.md). +The data storage takes place in the [workspaces](../data_lifecycle/workspaces.md). Software modules or virtual environments can also be installed in workspaces to enable collaborative work even within larger groups. General recommendations for setting up workflows can be found in the [experiments](../data_lifecycle/experiments.md) section. diff --git a/doc.zih.tu-dresden.de/docs/software/data_analytics_with_python.md b/doc.zih.tu-dresden.de/docs/software/data_analytics_with_python.md index e82b52361..cfaa4e404 100644 --- a/doc.zih.tu-dresden.de/docs/software/data_analytics_with_python.md +++ b/doc.zih.tu-dresden.de/docs/software/data_analytics_with_python.md @@ -15,7 +15,7 @@ For more details see [here](python_virtual_environments.md). Jupyter notebooks are a great way for interactive computing in a web browser. They allow working with data cleaning and transformation, -numerical simulation, statistical modelling, data visualization and machine learning. +numerical simulation, statistical modeling, data visualization and machine learning. On ZIH system a [JupyterHub](../access/jupyterhub.md) is available, which can be used to run a Jupyter notebook on an HPC node, as well using a GPU when needed. @@ -25,8 +25,8 @@ a Jupyter notebook on an HPC node, as well using a GPU when needed. ### Dask [Dask](https://dask.org/) is a flexible and open-source library for parallel computing in Python. -It natively scales Python and provides advanced parallelism for analytics, enabling performance at -scale for some of the popular tools. For instance: Dask arrays scale Numpy workflows, Dask +It scales Python and provides advanced parallelism for analytics, enabling performance at +scale for some of the popular tools. For instance: Dask arrays scale NumPy workflows, Dask dataframes scale Pandas workflows, Dask-ML scales machine learning APIs like Scikit-Learn and XGBoost. @@ -95,17 +95,17 @@ a library specification that allows HPC to pass information between its various nodes and clusters. MPI is designed to provide access to advanced parallel hardware for end-users, library writers and tool developers. -Mpi4py(MPI for Python) package provides bindings of the MPI standard for +mpi4py(MPI for Python) package provides bindings of the MPI standard for the python programming language, allowing any Python program to exploit multiple processors. -Mpi4py based on MPI-2 C++ bindings. It supports almost all MPI calls. +mpi4py based on MPI-2 C++ bindings. It supports almost all MPI calls. This implementation is popular on Linux clusters and in the SciPy community. Operations are primarily methods of communicator objects. It -supports communication of pickleable Python objects. Mpi4py provides +supports communication of pickle-able Python objects. mpi4py provides optimized communication of NumPy arrays. -Mpi4py is included as an extension of the SciPy-bundle modules on an HPC system +mpi4py is included as an extension of the SciPy-bundle modules on an HPC system ```console marie@compute$ module load SciPy-bundle/2020.11-foss-2020b diff --git a/doc.zih.tu-dresden.de/docs/software/data_analytics_with_r.md b/doc.zih.tu-dresden.de/docs/software/data_analytics_with_r.md index b307dad4e..0bb17d179 100644 --- a/doc.zih.tu-dresden.de/docs/software/data_analytics_with_r.md +++ b/doc.zih.tu-dresden.de/docs/software/data_analytics_with_r.md @@ -1,12 +1,12 @@ # R for Data Analytics [R](https://www.r-project.org/about.html) is a programming language and environment for statistical -computing and graphics. R provides a wide variety of statistical (linear and nonlinear modelling, +computing and graphics. R provides a wide variety of statistical (linear and nonlinear modeling, classical statistical tests, time-series analysis, classification, etc) and graphical techniques. R is an integrated suite of software facilities for data manipulation, calculation and graphing. -R possesses an extensive catalogue of statistical and graphical methods. It includes machine +R possesses an extensive catalog of statistical and graphical methods. It includes machine learning algorithms, linear regression, time series, statistical inference. We recommend using **Haswell** and/or **Romeo** partitions to work with R. For more details @@ -14,7 +14,7 @@ see [here](../jobs_and_resources/hardware_taurus.md). ## R Console -This is a quickstart example. The `srun` command is used to submit a real-time execution job +In the following example the `srun` command is used to submit a real-time execution job designed for interactive use with monitoring the output. Please check [the Slurm page](../jobs_and_resources/slurm.md) for details. @@ -59,7 +59,7 @@ For using R with RStudio please refer to [Data Analytics with RStudio](data_anal ## Install Packages in R -By default, user-installed packages are saved in the users home in a subfolder depending on +By default, user-installed packages are saved in the users home in a folder depending on the architecture (x86 or PowerPC). Therefore the packages should be installed using interactive jobs on the compute node: @@ -81,7 +81,7 @@ Therefore, using nodes with built-in GPUs ([ml](../jobs_and_resources/power9.md) ### R Interface to TensorFlow The ["TensorFlow" R package](https://tensorflow.rstudio.com/) provides R users access to the -Tensorflow toolset. [TensorFlow](https://www.tensorflow.org/) is an open-source software library +TensorFlow framework. [TensorFlow](https://www.tensorflow.org/) is an open-source software library for numerical computation using data flow graphs. ```Bash @@ -122,12 +122,12 @@ library(reticulate) reticulate::py_config() install.packages("tensorflow") library(tensorflow) -tf$constant("Hello Tensorflow") #In the output 'Tesla V100-SXM2-32GB' should be mentioned +tf$constant("Hello TensorFlow") #In the output 'Tesla V100-SXM2-32GB' should be mentioned ``` ??? example The example shows the use of the TensorFlow package with the R for the classification problem - related to the MNIST dataset. + related to the MNIST data set. ```R library(tensorflow) library(keras) @@ -213,10 +213,11 @@ concentrates on most general methods and examples. The Information here is Tauru The [parallel](https://www.rdocumentation.org/packages/parallel/versions/3.6.2) library will be used below. -**Warning:** Please do not install or update R packages related to parallelism as it could lead to -conflicts with other pre-installed packages. +!!! warning + Please do not install or update R packages related to parallelism as it could lead to + conflicts with other preinstalled packages. -### Basic Lapply-Based Parallelism +### Basic lapply-Based Parallelism `lapply()` function is a part of base R. lapply is useful for performing operations on list-objects. Roughly speaking, lapply is a vectorization of the source code and it is the first step before @@ -294,7 +295,7 @@ running in parallel. The desired type of the cluster can be specified with a par This way of the R parallelism uses the [Rmpi](http://cran.r-project.org/web/packages/Rmpi/index.html) package and the [MPI](https://en.wikipedia.org/wiki/Message_Passing_Interface) (Message Passing Interface) as a -"backend" for its parallel operations. The MPI-based job in R is very similar to submitting an +"back-end" for its parallel operations. The MPI-based job in R is very similar to submitting an [MPI Job](../jobs_and_resources/slurm.md#binding-and-distribution-of-tasks) since both are running multicore jobs on multiple nodes. Below is an example of running R script with the Rmpi on Taurus: diff --git a/doc.zih.tu-dresden.de/docs/software/data_analytics_with_rstudio.md b/doc.zih.tu-dresden.de/docs/software/data_analytics_with_rstudio.md index 46f5ac398..d199e8eb7 100644 --- a/doc.zih.tu-dresden.de/docs/software/data_analytics_with_rstudio.md +++ b/doc.zih.tu-dresden.de/docs/software/data_analytics_with_rstudio.md @@ -11,7 +11,7 @@ similarly to a new kernel from [JupyterLab](../access/jupyterhub.md#jupyterlab) {: style="width:90%" } ???tip - If an error "could not start rstudio in time" occurs, try reloading the webpage with F5. + If an error "could not start RStudio in time" occurs, try reloading the web page with F5. ???note Please note that it is currently not recommended to use an interactive x11 job with the diff --git a/doc.zih.tu-dresden.de/docs/software/distributed_training.md b/doc.zih.tu-dresden.de/docs/software/distributed_training.md index 165dad639..8d2e52394 100644 --- a/doc.zih.tu-dresden.de/docs/software/distributed_training.md +++ b/doc.zih.tu-dresden.de/docs/software/distributed_training.md @@ -6,7 +6,7 @@ TODO -### Distributed Pytorch +### Distributed PyTorch just copied some old content as starting point @@ -60,14 +60,14 @@ package to synchronize gradients and buffers. The tutorial could be found [here](https://pytorch.org/tutorials/intermediate/ddp_tutorial.html). -To use distributed data parallelisation on Taurus please use following +To use distributed data parallelization on Taurus please use following parameters: `--ntasks-per-node` -parameter to the number of GPUs you use per node. Also, it could be useful to increase `memomy/cpu` parameters if you run larger models. Memory can be set up to: ---mem=250000 and --cpus-per-task=7 for the **ml** partition. +`--mem=250000` and `--cpus-per-task=7` for the `ml` partition. ---mem=60000 and --cpus-per-task=6 for the **gpu2** partition. +`--mem=60000` and `--cpus-per-task=6` for the `gpu2` partition. Keep in mind that only one memory parameter (`--mem-per-cpu` = <MB> or `--mem`=<MB>) can be specified @@ -82,7 +82,7 @@ TensorFlow. #### Why use Horovod? -Horovod allows you to easily take a single-GPU TensorFlow and Pytorch +Horovod allows you to easily take a single-GPU TensorFlow and PyTorch program and successfully train it on many GPUs! In some cases, the MPI model is much more straightforward and requires far less code changes than the distributed code from TensorFlow for @@ -139,21 +139,21 @@ conda create --prefix=<location_for_your_environment> python=3.6 anaconda conda activate <location_for_your_environment> #activate virtual environment ``` -Install Pytorch (not recommended) +Install PyTorch (not recommended) ```Bash cd /tmp -git clone https://github.com/pytorch/pytorch #clone Pytorch from the source +git clone https://github.com/pytorch/pytorch #clone PyTorch from the source cd pytorch #go to folder git checkout v1.7.1 #Checkout version (example: 1.7.1) git submodule update --init #Update dependencies python setup.py install #install it with python ``` -##### Install Horovod for Pytorch with python and pip +##### Install Horovod for PyTorch with python and pip -In the example presented installation for the Pytorch without -TensorFlow. Adapt as required and refer to the horovod documentation for +In the example presented installation for the PyTorch without +TensorFlow. Adapt as required and refer to the Horovod documentation for details. ```Bash diff --git a/doc.zih.tu-dresden.de/docs/software/hyperparameter_optimization.md b/doc.zih.tu-dresden.de/docs/software/hyperparameter_optimization.md index 07ec3f6ce..78a33b8c6 100644 --- a/doc.zih.tu-dresden.de/docs/software/hyperparameter_optimization.md +++ b/doc.zih.tu-dresden.de/docs/software/hyperparameter_optimization.md @@ -10,12 +10,12 @@ are intuitive testing, grid search or random search. The tool OmniOpt performs hyperparameter optimization within a broad range of applications as classical simulations or machine learning algorithms. -Omniopt is robust and it checks and installs all dependencies automatically and fixes many -problems in the background. While Omniopt optimizes, no further intervention is required. -You can follow the ongoing stdout (standard output) live in the console. -Omniopt’s overhead is minimal and virtually imperceptible. +OmniOpt is robust and it checks and installs all dependencies automatically and fixes many +problems in the background. While OmniOpt optimizes, no further intervention is required. +You can follow the ongoing output live in the console. +Overhead of OmniOpt is minimal and virtually imperceptible. -## Quickstart with OmniOpt +## Quick start with OmniOpt The following instructions demonstrate the basic usage of OmniOpt on the ZIH system, based on the hyperparameter optimization for a neural network. @@ -31,7 +31,7 @@ The typical OmniOpt workflow comprises at least the following steps: The following example application script was created from [https://pytorch.org/tutorials/beginner/basics/quickstart_tutorial.html](https://pytorch.org/tutorials/beginner/basics/quickstart_tutorial.html){:target="_blank"} as a starting point. -Therein, a neural network is trained on the MNIST Fashion dataset. +Therein, a neural network is trained on the MNIST Fashion data set. There are three script preparation steps for OmniOpt: @@ -43,7 +43,7 @@ There are three script preparation steps for OmniOpt: ??? note "Parsing arguments in Python" There are many ways for parsing arguments into Python scripts. - The most easiest approach is the sys module (see + The most easiest approach is the `sys` module (see [https://www.geeksforgeeks.org/how-to-use-sys-argv-in-python/](https://www.geeksforgeeks.org/how-to-use-sys-argv-in-python/){:target="_blank"}), which would be fully sufficient for usage with OmniOpt. Nevertheless, this basic approach has no consistency checks or error handling etc. @@ -51,7 +51,7 @@ There are three script preparation steps for OmniOpt: + Mark the output of the optimization target (chosen here: average loss) by prefixing it with the RESULT string. OmniOpt takes the **last appearing value** prefixed with the RESULT string. - In the example different epochs are performed and the average from the last epoch is catched + In the example different epochs are performed and the average from the last epoch is caught by OmniOpt. Additionally, the RESULT output has to be a **single line**. After all these changes, the final script is as follows (with the lines containing relevant changes highlighted). @@ -92,7 +92,7 @@ There are three script preparation steps for OmniOpt: num_nodes_out1 = args.out_layer1 num_nodes_out2 = args.out_layer2 - # Download training data from open datasets. + # Download training data from open data sets. training_data = datasets.FashionMNIST( root="data", train=True, @@ -100,7 +100,7 @@ There are three script preparation steps for OmniOpt: transform=ToTensor(), ) - # Download test data from open datasets. + # Download test data from open data sets. test_data = datasets.FashionMNIST( root="data", train=False, @@ -198,9 +198,9 @@ There are three script preparation steps for OmniOpt: As a starting point, configuring OmniOpt is done via a GUI at [https://imageseg.scads.ai/omnioptgui/](https://imageseg.scads.ai/omnioptgui/). -This GUI guides through the configuration process and as result the config file is created +This GUI guides through the configuration process and as result the configuration file is created automatically according to the GUI input. If you are more familiar with using OmniOpt later on, -this config file can be modified directly without using the GUI. +this configuration file can be modified directly without using the GUI. A screenshot of the GUI, including a properly configuration for the MNIST fashion example is shown below. The GUI, in which the displayed values are already entered, can be reached [here](https://imageseg.scads.ai/omnioptgui/?maxevalserror=5&mem_per_worker=1000&projectname=mnist-fashion-optimization-set-1&partition=alpha&searchtype=tpe.suggest&objective_program=bash%20%2Fscratch%2Fws%2Fpath%2Fto%2Fyou%2Fscript%2Frun-mnist-fashion.sh%20(%24x_0)%20(%24x_1)%20(%24x_2)¶m_0_type=hp.randint¶m_1_type=hp.randint&number_of_parameters=3){:target="_blank"}. diff --git a/doc.zih.tu-dresden.de/docs/software/python_virtual_environments.md b/doc.zih.tu-dresden.de/docs/software/python_virtual_environments.md index 9d04be6db..aed3f90eb 100644 --- a/doc.zih.tu-dresden.de/docs/software/python_virtual_environments.md +++ b/doc.zih.tu-dresden.de/docs/software/python_virtual_environments.md @@ -1,6 +1,6 @@ # Python Virtual Environments -## ToDo +## TODO Link to this page from other DA/ML topics. @@ -10,7 +10,7 @@ Link to this page from other DA/ML topics. copied from `alpha_centauri.md`. Please remove there if this article is finished Virtual environments allow users to install additional python packages and create an isolated -runtime environment. We recommend using `virtualenv` for this purpose. +run-time environment. We recommend using `virtualenv` for this purpose. ```console marie@login$ srun --partition=alpha-interactive --nodes=1 --cpus-per-task=1 --gres=gpu:1 --time=01:00:00 --pty bash @@ -46,12 +46,12 @@ Successfully installed torchvision-0.10.0 There are two methods of how to work with virtual environments on Taurus: -1. **Vitualenv** is a standard Python tool to create isolated Python environments. +1. **virtualenv** is a standard Python tool to create isolated Python environments. It is the preferred interface for managing installations and virtual environments on Taurus and part of the Python modules. -2. **Conda** is an alternative method for managing installations and -virtual environments on Taurus. Conda is an open-source package +2. **conda** is an alternative method for managing installations and +virtual environments on Taurus. conda is an open-source package management system and environment management system from Anaconda. The conda manager is included in all versions of Anaconda and Miniconda. @@ -60,7 +60,7 @@ with the virtual environments previously created with conda tool and vice versa! Prefer virtualenv whenever possible. This example shows how to start working -with **Virtualenv** and Python virtual environment (using the module system) +with **virtualenv** and Python virtual environment (using the module system) ```Bash srun -p ml -N 1 -n 1 -c 7 --mem-per-cpu=5772 --gres=gpu:1 --time=04:00:00 --pty bash #Job submission in ml nodes with 1 gpu on 1 node. @@ -81,7 +81,7 @@ deactivate #Leave the virtua ``` The [virtualenv](https://virtualenv.pypa.io/en/latest/) Python module (Python 3) provides support -for creating virtual environments with their own sitedirectories, optionally isolated from system +for creating virtual environments with their own site-directories, optionally isolated from system site directories. Each virtual environment has its own Python binary (which matches the version of the binary that was used to create this environment) and can have its own independent set of installed Python packages in its site directories. This allows you to manage separate package @@ -91,11 +91,11 @@ simply create a new virtual environment and not have to worry about breaking the in other environments. In your virtual environment, you can use packages from the (Complete List of -Modules)(SoftwareModulesList) or if you didn't find what you need you can install required packages +Modules) or if you didn't find what you need you can install required packages with the command: `pip install`. With the command `pip freeze`, you can see a list of all installed packages and their versions. -This example shows how to start working with **Conda** and virtual +This example shows how to start working with **conda** and virtual environment (with using module system) ```Bash diff --git a/doc.zih.tu-dresden.de/wordlist.aspell b/doc.zih.tu-dresden.de/wordlist.aspell index 01487c58c..2bbc31c36 100644 --- a/doc.zih.tu-dresden.de/wordlist.aspell +++ b/doc.zih.tu-dresden.de/wordlist.aspell @@ -15,6 +15,8 @@ HPC ImageNet Infiniband Jupyter +JupyterHub +JupyterLab Keras MPI OPARI @@ -92,3 +94,49 @@ gnuplot RSA SHA pipelining +workspace +workspaces +RStudio +Mathematica +GPUs +MNIST +PSOCK +Rmpi +SMT +TCP +broadwell +foreach +haswell +lapply +parallelization +parallelize +vectorization +APIs +Dask +DataFrames +NumPy +SciPy +Scikit +TODO +ToDo +XArray +XGBoost +dask +dataframes +jobqueue +mpi +Miniconda +centauri +conda +virtualenv +DDP +DataParallel +DistributedDataParallel +NCCL +Hyperparameter +OmniOpt +hyperparameter +hyperparameters +overfitting +randint +transferability -- GitLab