From 0f373488ee97c85d051e58c0dda47c5de2ae95f5 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Sat, 24 Aug 2024 01:52:19 +0100 Subject: [PATCH 01/14] Update overview.rst Merged the first two chapters of the beginner user guide --- docs/userguide/overview.rst | 557 ++++++++++++++++++++---------------- 1 file changed, 304 insertions(+), 253 deletions(-) diff --git a/docs/userguide/overview.rst b/docs/userguide/overview.rst index 073cc202e6..c4710757d1 100644 --- a/docs/userguide/overview.rst +++ b/docs/userguide/overview.rst @@ -1,239 +1,160 @@ Overview ======== -Parsl is designed to enable straightforward parallelism and orchestration of asynchronous -tasks into dataflow-based workflows, in Python. Parsl manages the concurrent execution of -these tasks across various computation resources, from laptops to supercomputers, -scheduling each task only when its dependencies (e.g., input data dependencies) are met. +What is Parsl and Its Applications? +----------------------------------- + +Parsl is a Python library designed to enable straightforward parallelism and the orchestration of asynchronous tasks into dataflow-based workflows. It simplifies the execution of tasks across multiple computing resources, from laptops to supercomputers, by managing the concurrent execution of these tasks. Parsl schedules each task only when its dependencies, such as input data, are met. This allows Python code to run concurrently on various processors or computers, significantly speeding up data processing and computational tasks. Parsl is particularly beneficial for applications where problems can be broken down into smaller, independent tasks, making it versatile for a wide range of uses—from simple Python functions to complex workflows. + +Developing a Parsl Program +-------------------------- Developing a Parsl program is a two-step process: -1. Define Parsl apps by annotating Python functions to indicate that they can be executed concurrently. -2. Use standard Python code to invoke Parsl apps, creating asynchronous tasks and adhering to dependencies defined between apps. +1. **Define Parsl Apps**: Annotate Python functions to indicate that they can be executed concurrently. +2. **Invoke Parsl Apps**: Use standard Python code to invoke these apps, creating asynchronous tasks and managing the dependencies defined between them. + +This approach allows you to create a mental model of how Parsl programs behave. You can compare and contrast the behavior of Python programs that use Parsl constructs with those of conventional Python programs. + +Common Applications +------------------- + +1. **Data Processing and Analysis**: Parsl accelerates the processing of large datasets by performing tasks like data cleaning, transformation, and analysis in parallel. For instance, in genomic data analysis, tasks such as sequence alignment and variant calling can be executed concurrently across multiple computing nodes, significantly speeding up the process. + +2. **Scientific Simulations**: Parsl supports the parallel execution of complex simulations in fields such as physics, chemistry, and biology. A practical example includes simulating CO2 molecule clusters in chemistry, where running simulations in parallel improves computational efficiency and statistical sampling. + +3. **Machine Learning**: Parsl can parallelize the training of machine learning models. For example, it can train multiple deep learning models with different hyperparameters simultaneously across various GPUs, reducing the time required to find the best-performing model. + +4. **Parameter Studies**: Parsl allows the execution of multiple program instances with varying parameters in parallel. This is particularly useful in materials science, where researchers can study material properties under different conditions by running simulations in parallel. + +Script vs. Workflow +------------------- + +In Parsl, the distinction between a script and a workflow is essential: + +- **Script**: A Python file containing Parsl code that defines the tasks and their dependencies. +- **Workflow**: The actual execution of the Parsl script, which coordinates multiple tasks across different resources, ensuring tasks are executed in the correct order based on their dependencies. + +Understanding this distinction is like differentiating between a recipe and the cooking process. The script is the recipe, while the workflow is the cooking process, orchestrating the execution of tasks. + +Key Features and Benefits +------------------------- -We aim in this section to provide a mental model of how Parsl programs behave. -We discuss how Parsl programs create concurrent tasks, how tasks communicate, -and the nature of the environment on which Parsl programs can perform -operations. In each case, we compare and contrast the behavior of Python -programs that use Parsl constructs with those of conventional Python -programs. +- **Python-Based**: Parsl is written in Python, making it accessible to users familiar with the language. +- **Cross-Platform Compatibility**: Parsl runs on various platforms, from laptops to supercomputers, allowing for easy scaling. +- **Flexibility**: It supports different tasks, including Python functions, Bash scripts, and MPI applications, enabling the integration of existing code. +- **Data Handling**: Parsl manages data movement between tasks automatically, simplifying the development of data-intensive workflows. +- **Performance**: Parsl efficiently handles thousands of tasks per second, making it suitable for high-performance computing applications. -.. note:: - The behavior of a Parsl program can vary in minor respects depending on the - Executor used (see :ref:`label-execution`). We focus here on the behavior seen when - using the recommended `parsl.executors.HighThroughputExecutor` (HTEX). +Understanding Concurrency and Parallelism +========================================= + +Concurrency vs. Parallelism +---------------------------- + +- **Concurrency**: The ability of a program to handle multiple tasks simultaneously. These tasks may not execute at the same time but can overlap or be interleaved. +- **Parallelism**: The simultaneous execution of multiple tasks on different processors or computers, requiring hardware support for parallel processing. + +Parsl facilitates both concurrency and parallelism, allowing tasks to be executed concurrently and leveraging parallel hardware to run them simultaneously on different processors or computers. + +How Parsl Facilitates Parallel Computing +---------------------------------------- + +Parsl simplifies parallel computing by abstracting away the complexities of managing threads, processes, or inter-node communication. It allows you to focus on application logic by handling: + +- **Task Definition**: Defining tasks as Python functions or Bash scripts that can run in parallel. +- **Dependency Management**: Specifying dependencies between tasks to ensure correct execution order. +- **Resource Allocation**: Automatically allocating resources based on task dependencies and availability. +- **Task Execution**: Running tasks in parallel by utilizing available resources. +- **Data Management**: Managing data movement between tasks to ensure they have the necessary input data. +- **Result Collection**: Collecting task results for further processing in your Python code. Parsl and Concurrency ---------------------- -Any call to a Parsl app creates a new task that executes concurrently with the -main program and any other task(s) that are currently executing. Different -tasks may execute on the same nodes or on different nodes, and on the same or -different computers. - -The Parsl execution model thus differs from the Python native execution model, -which is inherently sequential. A Python program that does not contain Parsl -constructs, or make use of other concurrency mechanisms, executes statements -one at a time, in the order that they appear in the program. This behavior is -illustrated in the following figure, which shows a Python program on the left -and, on the right, the statements executed over time when that program is run, -from top to bottom. Each time that the program calls a function, control passes -from the main program (in black) to the function (in red). Execution of the -main program resumes only after the function returns. - -.. image:: ../images/overview/python-concurrency.png - :scale: 70 - :align: center - -In contrast, the Parsl execution model is inherently concurrent. Whenever a -program calls an app, a separate thread of execution is created, and the main -program continues without pausing. Thus in the example shown in the figure -below. There is initially a single task: the main program (black). The first -call to ``double`` creates a second task (red) and the second call to ``double`` -creates a third task (orange). The second and third task terminate as the -function that they execute returns. (The dashed lines represent the start and -finish of the tasks). The calling program will only block (wait) when it is -explicitly told to do so (in this case by calling ``result()``) - -.. image:: ../images/overview/parsl-concurrency.png - - -.. note:: - Note: We talk here about concurrency rather than parallelism for a reason. - Two activities are concurrent if they can execute at the same time. Two - activities occur in parallel if they do run at the same time. If a Parsl - program creates more tasks that there are available processors, not all - concurrent activities may run in parallel. +===================== +Any call to a Parsl app creates a new task that executes concurrently with the main program and other tasks. This behavior contrasts with the sequential nature of standard Python programs, where statements are executed one at a time in the order they appear. + +In a traditional Python program, calling a function transfers control from the main program to the function, and execution of the main program resumes only after the function returns. However, in Parsl, whenever a program calls an app, a separate thread of execution is created, and the main program continues without pausing. The calling program will only block (wait) when explicitly told to do so, typically by calling the ``result()`` method. + +Execution Model: Python vs. Parsl +--------------------------------- + +The execution model of Parsl is inherently concurrent, which is a key difference from Python's native sequential execution model. The figures below illustrate this difference: + +1. **Python Sequential Execution**: + - In traditional Python, the main program pauses when a function is called and resumes only after the function returns. + +2. **Parsl Concurrent Execution**: + - In Parsl, when an app is called, a separate task is created, and the main program continues executing. The main program only waits if the ``result()`` method is called. + +This concurrent execution model enables Parsl to efficiently manage and execute multiple tasks in parallel, even across different nodes or computers. Parsl and Execution -------------------- -We have now seen that Parsl tasks are executed concurrently alongside the main -Python program and other Parsl tasks. We now turn to the question of how and -where are those tasks executed. Given the range of computers on which parallel -programs may be executed, Parsl allows tasks to be executed using different -executors (:py:class:`parsl.executors`). Executors are responsible for taking a queue of tasks and executing -them on local or remote resources. - -We briefly describe two of Parsl's most commonly used executors. -Other executors are described in :ref:`label-execution`. - -The `parsl.executors.HighThroughputExecutor` (HTEX) implements a *pilot job model* that enables -fine-grain task execution using across one or more provisioned nodes. -HTEX can be used on a single node (e.g., a laptop) and will make use of -multiple processes for concurrent execution. -As shown in the following figure, HTEX uses Parsl's provider abstraction (:py:class:`parsl.providers`) to -communicate with a resource manager (e.g., batch scheduler or cloud API) to -provision a set of nodes (e.g., Parsl will use Slurm’s sbatch command to request -nodes on a Slurm cluster) for the duration of execution. -HTEX deploys a lightweight worker agent on the nodes which subsequently connects -back to the main Parsl process. Parsl tasks are then sent from the main program -to the connected workers for execution and the results are sent back via the -same mechanism. This approach has a number of advantages over other methods: -it avoids long job scheduler queue delays by acquiring one set of resources -for the entire program and it allows for scheduling of many tasks on individual -nodes. - -.. image:: ../images/overview/htex-model.png - -.. Note: - Note: when deploying HTEX, or any pilot job model such as the - WorkQueueExecutor, it is important that the worker nodes be able to connect - back to the main Parsl process. Thus, you should verify that there is network - connectivity between the workers and the Parsl process and ensure that the - correct network address is used by the workers. Parsl provides a helper - function to automatically detect network addresses - (`parsl.addresses.address_by_query`). - - -The `parsl.executors.ThreadPoolExecutor` allows tasks to be executed on a pool of locally -accessible threads. As execution occurs on the same computer, on a pool of -threads forked from the main program, the tasks share memory with one another -(this is discussed further in the following sections). +=================== +Parsl tasks are executed concurrently alongside the main Python program and other Parsl tasks. Depending on the computing environment, Parsl allows tasks to be executed using different executors, which are responsible for managing the execution of tasks on local or remote resources. + +Common Executors in Parsl +-------------------------- + +1. **HighThroughputExecutor (HTEX)**: + The ``HighThroughputExecutor`` (HTEX) implements a pilot job model that enables fine-grain task execution across one or more provisioned nodes. HTEX can be used on a single node (e.g., a laptop) or across multiple nodes in a cluster. It communicates with a resource manager (e.g., a batch scheduler or cloud API) to provision nodes for the duration of execution. HTEX deploys lightweight worker agents on the nodes, which connect back to the main Parsl process. This model avoids long job scheduler queue delays and allows for efficient scheduling of many tasks on individual nodes. + + .. image:: ../images/overview/htex-model.png + :alt: HTEX Model + + **Note**: When deploying HTEX or any pilot job model, it is important to ensure that the worker nodes can connect back to the main Parsl process. Parsl provides a helper function, ``parsl.addresses.address_by_query``, to automatically detect network addresses. + +2. **ThreadPoolExecutor**: + The ``ThreadPoolExecutor`` allows tasks to be executed on a pool of locally accessible threads. As execution occurs on the same computer, the tasks share memory with one another. This executor is ideal for running tasks on a single machine where tasks need to share data or resources. Parsl and Communication ------------------------ -Parsl tasks typically need to communicate in order to perform useful work. -Parsl provides for two forms of communication: by parameter passing -and by file passing. -As described in the next section, Parsl programs may also communicate by -interacting with shared filesystems and services its environment. +======================= + +Parsl tasks typically need to communicate to perform useful work. Parsl supports two primary forms of communication: parameter passing and file passing. Parameter Passing -^^^^^^^^^^^^^^^^^ +----------------- -The figure above illustrates communication via parameter passing. -The call ``double(3)`` to the app ``double`` in the main program creates a new task -and passes the parameter value, 3, to that new task. When the task completes -execution, its return value, 6, is returned to the main program. Similarly, the -second task is passed the value 5 and returns the value 10. In this case, the -parameters passed are simple primitive types (i.e., integers); however, complex -objects (e.g., Numpy Arrays, Pandas DataFrames, custom objects) can also be -passed to/from tasks. +In Parsl, parameters can be passed directly between tasks. When a task is created, it receives its input parameters and, upon completion, returns the output to the main program or another task. While simple primitive types like integers are commonly passed, more complex objects such as Numpy arrays, Pandas DataFrames, or custom objects can also be passed to and from tasks. File Passing -^^^^^^^^^^^^ -Parsl supports communication via files in both Bash apps and Python apps. -Files may be used in place of parameter passing for many reasons, such as for -apps are designed to support files, when data to be exchanged are large, -or when data cannot be easily serialized into Python objects. -As Parsl tasks may be executed on remote nodes, without shared file systems, -Parsl offers a Parsl :py:class:`parsl.data_provider.files.File` construct for location-independent reference -to files. Parsl will translate file objects to worker-accessible paths -when executing dependent apps. -Parsl is also able to transfer files in, out, and between Parsl -apps using one of several methods (e.g., FTP, HTTP(S), Globus and rsync). -To accommodate the asynchronous nature of file transfer, Parsl treats -data movement like a Parsl app, adding a dependency to the execution graph -and waiting for transfers to complete before executing dependent apps. -More information is provided in :ref:`label-data`). - -Futures -^^^^^^^ -Communication via parameter and file passing also serves a second purpose, namely -synchronization. As we discuss in more detail in :ref:`label-futures`, a call to an -app returns a special object called a future that has a special unassigned -state until such time as the app returns, at which time it takes the return -value. (In the example program, two futures are thus created, d1 and d2.) The -AppFuture function result() blocks until the future to which it is applied takes -a value. Thus the print statement in the main program blocks until both child -tasks created by the calls to the double app return. The following figure -captures this behavior, with time going from left to right rather than top to -bottom as in the preceding figure. Task 1 is initially active as it starts -Tasks 2 and 3, then blocks as a result of calls to d1.result() and d2.result(), -and when those values are available, is active again. +------------ -.. image:: ../images/overview/communication.png +Parsl also supports communication via files, which is especially useful when dealing with large datasets or when tasks are designed to work with files. Parsl uses the ``parsl.data_provider.files.File`` construct for location-independent reference to files. This allows tasks to be executed on remote nodes without shared file systems. Parsl can transfer files in, out, and between tasks using methods such as FTP, HTTP(S), Globus, and rsync. The asynchronous nature of file transfer is managed by Parsl, which adds these transfers as dependencies in the execution graph. -The Parsl Environment ---------------------- -Regular Python and Parsl-enhanced Python differ in terms of the environment in -which code executes. We use the term *environment* here to refer to the -variables and modules (the *memory environment*), the file system(s) -(the *file system environment*), and the services (the *service environment*) -that are accessible to a function. - -An important question when it comes to understanding the behavior of Parsl -programs is the environment in which this new task executes: does it have the -same or different memory, file system, or service environment as its parent -task or any other task? The answer, depends on the executor used, and (in the -case of the file system environment) where the task executes. -Below we describe behavior for the most commonly used `parsl.executors.HighThroughputExecutor` -which is representative of all Parsl executors except the `parsl.executors.ThreadPoolExecutor`. - -.. Warning: - The `parsl.executors.ThreadPoolExecutor` behaves differently than other Parsl executors as - it allows tasks to share memory. - -Memory environment -^^^^^^^^^^^^^^^^^^ - -In Python, the variables and modules that are accessible to a function are defined -by Python scoping rules, by which a function has access to both variables defined -within the function (*local* variables) and those defined outside the function -(*global* variables). Thus in the following code, the print statement in the -print_answer function accesses the global variable "answer", and we see as output -"the answer is 42." +Synchronization with Futures +----------------------------- -.. code-block:: python +Futures in Parsl serve as placeholders for the results of tasks. When a task is created, it returns a future that initially remains in an unassigned state until the task completes. The ``result()`` method is used to retrieve the result, and this method blocks the main program until the future is resolved. This synchronization mechanism ensures that dependent tasks execute in the correct order. - answer = 42 +.. image:: ../images/overview/communication.png + :alt: Communication and Synchronization - def print_answer(): - print('the answer is', answer) +The Parsl Environment +===================== - print_answer() +Parsl enhances Python by altering the environment in which code executes, including the memory environment, file system environment, and service environment. +Memory Environment +------------------ -In Parsl (except when using the `parsl.executors.ThreadPoolExecutor`) a Parsl app is executed -in a distinct environment that only has access to local variables associated -with the app function. Thus, if the program above is executed with say the -`parsl.executors.HighThroughputExecutor`, will print "the answer is 0" rather than "the answer -is 42," because the print statement in provide_answer does not have access to -the global variable that has been assigned the value 42. The program will -run without errors when using the `parsl.executors.ThreadPoolExecutor`. +In Python, a function has access to both local variables (defined within the function) and global variables (defined outside the function). However, in Parsl, except when using the ``ThreadPoolExecutor``, each task runs in a distinct environment with access only to local variables associated with the app function. -Similarly, the same scoping rules apply to import statements, and thus -the following program will run without errors with the `parsl.executors.ThreadPoolExecutor`, -but raise errors when run with any other executor, because the return statement -in ``ambiguous_double`` refers to a variable (factor) and a module (random) that are -not known to the function. +For example, consider the following code: .. code-block:: python - import random - factor = 5 + answer = 42 - @python_app - def ambiguous_double(x): - return x * random.random() * factor + def print_answer(): + print('the answer is', answer) + + print_answer() - print(ambiguous_double(42)) - +In regular Python, the ``print_answer`` function would output "the answer is 42" because it accesses the global variable ``answer``. However, in Parsl (except when using the ``ThreadPoolExecutor``), if this program is executed, the function would print "the answer is 0" because the print statement in ``print_answer`` would not have access to the global variable that has been assigned the value 42. This behavior is due to the fact that Parsl apps run in a distinct environment with no access to global variables. -To allow this program to run correctly with all Parsl executors, the random -library must be imported within the app, and the factor variable must be -passed as an argument, as follows. +To ensure compatibility with all Parsl executors, you should pass any required variables as arguments to the function, and import any necessary modules within the function itself, as shown below: .. code-block:: python @@ -245,76 +166,206 @@ passed as an argument, as follows. import random return x * random.random() * factor - print(good_double(factor, 42)) + print(good_double(factor, 42).result()) +This ensures that the function runs correctly regardless of the executor used. -File system environment -^^^^^^^^^^^^^^^^^^^^^^^ +File System Environment +======================== -In a regular Python program the environment that is accessible to a Python -program also includes the file system(s) of the computer on which it is -executing. -Thus in the following code, a value written to a file "answer.txt" in the -current directory can be retrieved by reading the same file, and the print -statement outputs "the answer is 42." +In a regular Python program, the environment accessible to the code includes the file system of the computer on which it is running. For example: .. code-block:: python def print_answer_file(): - with open('answer.txt','r') as f: - print('the answer is', f.read()) + with open('answer.txt', 'r') as f: + print('the answer is', f.read()) - with open('answer.txt','w') as f: + with open('answer.txt', 'w') as f: f.write('42') - f.close() print_answer_file() +The above code writes the value "42" to a file named ``answer.txt`` and then reads it back to print "the answer is 42". In Parsl, the file system environment accessible to a task depends on where the task executes. If two tasks run on nodes that share a file system, they can share the file system environment, allowing one task to read a file written by another task. However, if the tasks are executed on nodes without a shared file system, they will not share the file environment, and attempts to read the file would fail. -The question of which file system environment is accessible to a Parsl app -depends on where the app executes. If two tasks run on nodes that share a -file system, then those tasks (e.g., tasks A and B in the figure below, -but not task C) share a file system environment. Thus the program above will -output "the answer is 42" if the parent task and the child task run on -nodes 1 and 2, but not if they run on nodes 2 and 3. +The diagram below illustrates this scenario: .. image:: ../images/overview/filesystem.png - :scale: 70 - :align: center + :alt: File System Environment Service Environment -^^^^^^^^^^^^^^^^^^^ +==================== -We use the term service environment to refer to network services that may be -accessible to a Parsl program, such as a Redis server or Globus data management -service. These services are accessible to any task. +The service environment refers to network services accessible to a Parsl program, such as a Redis server or Globus data management service. These services are typically accessible to any task, regardless of the executor used or the location of the task. Environment Summary -^^^^^^^^^^^^^^^^^^^ - -As we summarize in the table, if tasks execute with the `parsl.executors.ThreadPoolExecutor`, -they share the memory and file system environment of the parent task. If they -execute with any other executor, they have a separate memory environment, and -may or may not share their file system environment with other tasks, depending -on where they are placed. All tasks typically have access to the same network -services. - -+--------------------+--------------------+--------------------+---------------------------+------------------+ -| | Share memory | Share file system | Share file system | Share service | -| | environment with | environment with | environment with other | environment | -| | parent/other tasks | parent | tasks | with other tasks | -+====================+====================+====================+===========================+==================+ -+--------------------+--------------------+--------------------+---------------------------+------------------+ -| Python | Yes | Yes | N/A | N/A | -| without | | | | | -| Parsl | | | | | -+--------------------+--------------------+--------------------+---------------------------+------------------+ -| Parsl | Yes | Yes | Yes | N/A | -| ThreadPoolExecutor | | | | | -| | | | | | -+--------------------+--------------------+--------------------+---------------------------+------------------+ -| Other Parsl | No | If executed on the | If tasks are executed on | N/A | -| executors | | same node with | the same node or with | | -| | | file system access | access to the same file | | -| | | | system | | -+--------------------+--------------------+--------------------+---------------------------+------------------+ +==================== + +The table below summarizes the differences in environment sharing between tasks executed with the ``ThreadPoolExecutor`` and other Parsl executors: + +.. list-table:: + :header-rows: 1 + + * - + - Share Memory Environment with Parent/Other Tasks + - Share File System Environment with Parent + - Share File System Environment with Other Tasks + - Share Service Environment with Other Tasks + * - Python without Parsl + - Yes + - Yes + - N/A + - N/A + * - Parsl ``ThreadPoolExecutor`` + - Yes + - Yes + - Yes + - N/A + * - Other Parsl Executors + - No + - If executed on the same node with file system access + - If tasks are executed on the same node or with access to the same file system + - N/A + +Getting Started with Parsl +=========================== + +Installation and Setup +----------------------- + +System Requirements and Dependencies +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Parsl is compatible with Python 3.8 or newer and has been tested on Linux. Ensure Python and pip are installed on your system before proceeding. + +Installation on Different Platforms +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- **Windows**: Parsl is not officially supported on Windows, but you can use the Windows Subsystem for Linux (WSL) to run it. +- **Docker**: Parsl can be run in a Docker container, providing a portable environment. +- **macOS**: Install Parsl using pip or conda. On Macs with M1 chips, use a Rosetta terminal for compatibility. +- **Linux**: Parsl is well-supported on Linux and can be installed using pip or conda. +- **Android**: While Parsl is not designed for Android, you can use platforms like Google Colab to run Parsl scripts in a browser. + +Installing Parsl +~~~~~~~~~~~~~~~~ + +To install Parsl using pip, run: + +.. code-block:: bash + + python3 -m pip install parsl + +Verify the installation with: + +.. code-block:: bash + + parsl --version + +Upgrade to the latest version with: + +.. code-block:: bash + + python3 -m pip install -U parsl + +Basic Configuration +--------------------- + +Parsl separates your code from how it's executed through a configuration file that defines how Parsl uses computing resources. A simple configuration for running Parsl on your local machine might look like this: + +.. code-block:: python + + from parsl.config import Config + from parsl.executors import ThreadPoolExecutor + + config = Config( + executors=[ThreadPoolExecutor(max_threads=4)] + ) + +This configuration uses up to four threads in parallel on your local machine. + +Writing and Running a Parsl Script +----------------------------------- + +A Parsl script defines tasks and their dependencies. Here’s a simple example: + +.. code-block:: python + + import parsl + from parsl.config import Config + from parsl.executors import HighThroughputExecutor + from parsl import python_app + + config = Config(executors=[HighThroughputExecutor(max_workers=4)]) + parsl.load(config) + + @python_app + def my_task(x): + return x * 2 + + results = [my_task(i) for i in range(10)] + + for result in results: + print(result.result()) + +This script defines a task that doubles a number, runs 10 instances of this task in parallel, and prints the results. + +Practical Tutorial: Hello World with Parsl +------------------------------------------ + +A basic "Hello World" script in Parsl: + +.. code-block:: python + + import parsl + from parsl import python_app + + @python_app + def hello(name): + return f'Hello, {name}!' + + parsl.load() + result = hello("World").result() + print(result) # Output: Hello, World! + +This script demonstrates the core components of a Parsl program, including importing Parsl, loading a configuration, defining an app, calling the app, and retrieving results. + +Setting Up Your First Parsl Workflow +------------------------------------- + +To set up your first Parsl workflow, you'll need to: + +1. **Install Parsl**: Follow the installation instructions in the "Installation and Setup" section to install Parsl on your system. +2. **Choose a Configuration**: Select a configuration that matches your computing environment. Parsl provides several example configurations for different platforms, such as laptops, clusters, and clouds. You can also create custom settings. +3. **Write a Parsl Script**: Define the tasks you want to run in parallel and their dependencies. +4. **Load the Configuration**: Use the ``parsl.load()`` function to load your chosen configuration. +5. **Run Your Script**: Execute a Parsl script like any other Python script. Parsl will then take care of executing your tasks in parallel, managing dependencies, and moving data as needed. + +Advanced Concepts: Parsl Environment and Execution +=================================================== + +Parsl and Concurrency +---------------------- + +As previously mentioned, any call to a Parsl app creates a new task that executes concurrently with the main program and other tasks. This behavior contrasts with the sequential nature of standard Python programs, where statements are executed one at a time in the order they appear. + +Execution Model: Python vs. Parsl +---------------------------------- + +The execution model of Parsl is inherently concurrent, which is a key difference from Python's native sequential execution model. This enables Parsl to efficiently manage and execute multiple tasks in parallel, even across different nodes or computers. + +Task Communication +------------------- + +Parsl supports communication between tasks via parameter and file passing. Parameters can be passed directly between tasks, while files can be used when dealing with large datasets or when tasks are designed to work with files. Parsl manages file transfers as asynchronous tasks, ensuring that dependencies are met before execution. + +Synchronization with Futures +----------------------------- + +Futures in Parsl serve as placeholders for the results of tasks. When a task is created, it returns a future that remains in an unassigned state until the task completes. The ``result()`` method is used to retrieve the result, and this method blocks the main program until the future is resolved. This synchronization mechanism ensures that dependent tasks execute in the correct order. + +Environment Considerations +--------------------------- + +Parsl enhances Python by altering the environment in which code executes, including the memory environment, file system environment, and service environment. Understanding these environments is crucial for developing efficient and reliable Parsl applications. + From be1b2510606e99794a0c8d23d843960df145839d Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Sat, 24 Aug 2024 02:51:40 +0100 Subject: [PATCH 02/14] Update overview.rst Added image placeholders --- docs/userguide/overview.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/userguide/overview.rst b/docs/userguide/overview.rst index c4710757d1..211dd743a7 100644 --- a/docs/userguide/overview.rst +++ b/docs/userguide/overview.rst @@ -35,6 +35,11 @@ In Parsl, the distinction between a script and a workflow is essential: - **Script**: A Python file containing Parsl code that defines the tasks and their dependencies. - **Workflow**: The actual execution of the Parsl script, which coordinates multiple tasks across different resources, ensuring tasks are executed in the correct order based on their dependencies. +.. image:: ../images/script_vs_workflow.png + :alt: Script vs. Workflow + :align: center + :scale: 70% + Understanding this distinction is like differentiating between a recipe and the cooking process. The script is the recipe, while the workflow is the cooking process, orchestrating the execution of tasks. Key Features and Benefits @@ -57,6 +62,11 @@ Concurrency vs. Parallelism Parsl facilitates both concurrency and parallelism, allowing tasks to be executed concurrently and leveraging parallel hardware to run them simultaneously on different processors or computers. +.. image:: ../images/how_parsl_manages_concurrency.png + :alt: How Parsl Manages Concurrency + :align: center + :scale: 70% + How Parsl Facilitates Parallel Computing ---------------------------------------- @@ -310,6 +320,11 @@ A Parsl script defines tasks and their dependencies. Here’s a simple example: This script defines a task that doubles a number, runs 10 instances of this task in parallel, and prints the results. +.. image:: ../images/basic_parsl_script_flow.png + :alt: Diagram: Basic Parsl Script Flow + :align: center + :scale: 70% + Practical Tutorial: Hello World with Parsl ------------------------------------------ From 2684e63ba20e845b8bc50099b110f874319dcbc7 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Sat, 24 Aug 2024 02:58:28 +0100 Subject: [PATCH 03/14] Add files via upload --- docs/images/overview/BasicParslScriptFlow.jpg | Bin 0 -> 184905 bytes .../overview/ParslManagesConcurrency.jpg | Bin 0 -> 184879 bytes docs/images/overview/ScriptvsWorkflow.png | Bin 0 -> 119300 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/overview/BasicParslScriptFlow.jpg create mode 100644 docs/images/overview/ParslManagesConcurrency.jpg create mode 100644 docs/images/overview/ScriptvsWorkflow.png diff --git a/docs/images/overview/BasicParslScriptFlow.jpg b/docs/images/overview/BasicParslScriptFlow.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4849c6c448536f0f20883c642686edc62c83fc82 GIT binary patch literal 184905 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 ?wjEH>BoX$VBg1~^0rQz+Q7Y0rShCg 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�%t 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

@D{G({~+>Ozqbj+r6U7yV(o7$-&f- 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

S*cK@S-`P?v>2`8N{T! z?wwNn_*s8@vF2*O3;GWgpG6uG_f6`X8mSz(JnY?=g0DKk@dEGT@#QUq+SRjZ=v-pMfa2I=Pm+}q z1U7bXZuo#Ur~9=e?b&PkQR`7$qs77Y<5^1(m*$5@MxpoO07NLin!)@#@fLXfnsJNL zKI9Q3^#@VXsx_BrU=o;hsOWw55!}=94^=;!vFB)7AVM(Ys;~vU0)-l6U%S=N>hss# zCJjfuDKoNvgv{|>>$`YYPd%>rE{dTP>kV?AZ4uFkR#I$@0Iq2SfIlzL(w;W2R?HH% ze+685%A>{pvcy2~O(Y{oyuV^y;%{NZ0BOd$|A2~NhyTB(j`Z(W`JY52pt>Wt*2Rg- z+t51C|1Ex4GoleOry>lsAN}=m`OK%(XW0V`*RR;o)$zS(u5t}XFozJqqz9~IAIEWh z_)N-D>-!kDohc18DY#QHN=l_1_oqa%{EwX0sS)KZPOB|Ch)DF?9gQY&c;FD%k52 z@tY&IKGYM~Xqf=D+lz6?)6 zMy!NCEjoKmS@Cpn>gFJ3dgQ}%mdtX(Z2Wb2KT?%ENlcu%$euVVi9e7G#^oIU3Z3he z4qhSe<&?O~{nW~FZ$RTF>Rk!>OPaf7nD~Qj zH`Zg<#u+!>9knN64+z<(VXr6st)yOmK)N;a#sRi>B;))uvca)ymb2*~PwzRO5)N}9i+Jp`&qe2~$k)KA9F>Bl=C0Np{JKR; z&YpR(B;Wa6bHq3ha;nfEz|WTjGLI-3RJQ(MU*)Q^0EG)n9&H=XHLIn<~vG{hQUt?$$E%M1ba{yxecvMh+ox2#HM19TUH~27qontKS&Vu^|PqptU zfEi-f3SK1f9(xWNTQqbOPbNZm^GWYY%O)NgwNe{HFgih*4_L%aGgAevoff}NUxFP4 zl{9e|jG7pN_w-{7wa2Cle@13io3er5^pg$^gNk*@eI=&D zx3Dm7SqqVc)#IASY`L=XKIu!yzsbUXsLH0jWR+O=QO;J_-k_Rn@{mh*@Q>FMg>4P- z#fE?>H}P_`DZX-lHG=RA2=V6gwm8uDNO4!Rgf8U_1?Wtpy>Xs>Q5&C7zV-798Kttu zTH&5z$9=35NYQ@(u!n`m@2X0tcCU%k8Qlbf$KfPHtbeT+buHiL+B$}l_yHl`qw}L( zX1#5ic@uxXYo4s)_KWqs!NLN;3qpUWe4W~e_$PIV-CR1jv~~`heGT)F;vF#CiTAtV zlSP?F9d^;qb8pV&L3cFAe$Mr@>kSncY$=55yE0X|`Q~IzY)LktCIr_I$W6$qL{IZ8 zL{HB<;)Z#G@%n0vKU)}n9qd2RDA9b;&d+u&DXmYVp#fFxM?2H)`A)t_CX;#FX4mJ` z=nvJn8%@Yr!43KmiF0M+>4OcQ+^tI4*my%fN#U|V=Q2qJup~h_OyQ&#=zI#%;ceFu z9fv_0SxGnN1B*U+q(|_!-Q+gyNzS@nlXQ?T}jYB{XA(sZ=A{lW-lG|@WVNy;=^oqdltT5$`uFWfWeHW$%Y z($oKaVu^(p>~lHx*UA|;IS$h}EpPvpE63cki&X|RhugS{ml}e!bslF;-A#D)L)*+> zZ*uPHqa+g{?n`!B38a+I}S&OvUz`^$=ss#)mxA(npNE>$zk>3oTwKG zwS4f|)tsUPjGI!2Bsw3`g;;n{S{Lg5%6E_NiF4OT?i>H~u6?&0Cv#~+wD@QAsX$+d zA^yX>FD;+jlXOQ#-E3s^tW_`CdJ@L?NxX!f>lYn=RWSp9ITp=AK3jZml7Q{wiE7(* zv_&tGe+tA{1o>;k{=kjJhNnnPeYfx-o{p0NovuFpa^>#Xp(%+5Tb2c_%IIQT1w1N2 zuC`I{^^?1W9i2iMwdWu}dKAT+?rv3h)jPFgGeMA;qOb{3h!dBg2Xgyz@oH*E$E_pc zysP^j+vz*vF9>-W?$nSg698H|L6cZxld?_Lc%m&`LpsC>;=z_pSwHr zvpT{rHn3+wOZSXw5co% z`okq2x1xRV@Qpguyq*)i?UKT7AEIikUb6E5`Emk$EC|-xDzqL7Tq9x`m&}uA6;rG6 zhE{6F?4gnP)~Qr0c7|ZU;!L>;^W5uzn7lK@#VvZ!8)h~(fTD%fOpn*f3h{w7<18HZ zst&`GR50oH*Gr~B!)_C&lSoCQ(e0yS1GY&8h|rk=&?bfMoncz_4z_&vfmyQ-&08S5 zqzcij>Xp~6y`v>z!VFz}llLDg8rvg8W;Q7Ecm=lh;96>hE52^RrJnKh)CjJXx3;@w zkY*qm*cP5a@KdQvII3}7xjz8Or{jiRox1#$)6=`tvq2WMBUA-x@V4dTI z)iF)eD!aN%ww7p5%qP#0J>rc&R3BG0(z80c{W~QVTRkFvXMD+=?M!}p96}@HS{P}<>IYP;XKH4cIC20t@KC|A?6!xgM3jdCTz9xUD zpDt*M4vpX5a}8KuSPNqPLsg^i_X*{Wlk#uLZk&D}6NSC_gn{Zv0w=LTNEBJm2|v6f zJU&|^a~v-bl?gAf(RQSJ(b>pg9mBICYIgA(SwQD~l5w=hos3JXTU}hUmjEteK>btN zb^Zud{1m(C{fLu*xe-v=Cb#Epz@zDcjc;`szt-$6u&pmPPRn<%1+iJH*ZZm`Hg>ey zJjO+h7J3gy-sAJSc`e3U&$&}AS$ROebeX`zM@hXX$PjoCne8PmyPd1QZtH-UKJvQMI+Ht;lalbex85x5*y?kx|DWSOG{ zG`%ioZdiY3TxAdv7Ww@*>usiF#ydyG!keea-=>ovR(Xpi@dqF~)&#qAP+Gpc|B)b+n>x*mLbpsvlxvC4)r`uUDmPX0>x!n|a z19PS{!}qM=?Mu9AaC@IqozD-IP>Aw(^H^8_R`R*H?x(w424O#cn*7z?fF!)StQt~X zzWMg+rDRcxZtCCH*8gXY{)b_D|2Ja8e-L>8ljr@{>%tjouu~z^QnVI9xj%i}sz;4E zuW!5)L8W+w7#_k(*&pe#H|j6ef}oX76LhJ`Uf-VcirEuMj0yDPe+ApWPeuPs6GHD9>r&3(evBfv%uuaqXh>oFP}HF& z{k=V<-*~pICj0u9>Sxyaer%@XgP4}o{OZF(CoN6xM*D!Jh#=Pj$END-#K13Qp751$ z3ZvrmfkKfWZ_!VuMY0`}0M|f_t=gW?E-%{V4s~P)_N^G9=UIE~D4(68tly7VK)>K# z%pzhAZfaB_rtD<87HZQw+oiYXo@D5rzqykNw{0u?QRk`l>Hb67 zjzn_!5uv|olQb1H`5mV1yVZ?ONj{lX??InRP%l)v7>4r zeI<3Ak9Q3~@LxzV#l>80PJVpW=_khR05Kwb)9mx3?qWE-9~7oY)7{0e7QDJ0ZL5A8 zcqxj?^s36WM{kXTmOqz=Ya;i@D6fm&w2sGry@1-iFnKIxRiWX!y1KUiZ!+cJaVoYF z7K)aOS_(49MuxuUb~(=sb2gD=Wb}y{CA(yL1u(s}RCe`Z{OJT|JV+?2Tn$>6+%0YU zUBT07&vEb`y(9fQ;gc5J;RINERo5w7pncqk+JdG-0k$JhUcSq5xGOI9i-0mWOJ1Z# zk7%bAQCS3@L*I>D+6=DQrf8G5TjL_`Uz$F|F$jO%aMs71UkT`p^2oAiU@z*-G_H>> zW=L62hA68QTPAN;m)6;ey+>7ESQ?sXK5O~=9oO3MHxHKx&{Wq?mg-i9s+M0vS2*Ka zXJ{#ui7fyih)zo!l|amU>%Eir3<&r-1h6+_VV>b{Z37T5M9^bnRM%ZrDeJxK3NaMF zQQ5XbZ4;$ztH#CsFOw(eow8Q{W|GO8cwEGGi|ksOw~2UY3v;`gd+M`Rm8Ilw-|#N` zF+H=>&=};@8__q5=n6R<*?`l`nqoPQ&hP{MEEV(U(aO*wA1dF#3hy>L+YkzM?X<2jS2R7~BE%bMo6 zlvi#%AN+3iq&zawl`Z0rDdY-zM&;9=M)}t~8)}=SAQNb^0eZZ`be(`^-Md~Qgr5le)|3EqH$0-tmcY1*>yy_|2^0{Rm$R zn$cR{tBeObBCK1}2bTRfEM&ae)$6!|E=5g86FXtQ@X{K8J>K{1fa8#;_SJ`C;Fkjl z9C&Mu!2pWyEvQn2qenaT0~MIE^e>By&8kW2>`}HBqED?&6WY_UO=0(;LK;r^_+f2S zz3e?q9?Zl19vB?0<8m1>`+}mWm$FG7>jUuAQ!pYpVSQ6k?FUybBcm7?${QNaQ{T}2 zK!6+R$inYvT@k9NpNu9_i7YWGm9_j}(>~aJ*ipY^7Wz&!knk+4tgnPK{0nGP_V^&J zTHG|vf?3(c>h{DJ&eShyW5=|d5xx_~`o5{I=LmOn+TYdRS3tlQ-cm2TITXEkptB|% z$_vIm_VWs-KBZJ_OaGQmRR8cO@?ZGzf0*k1zZWS+dPwE$C;AV|d~<9K=c!LffZOg- zxyS$dgvY!gaFmD(QM)+!A)E`!#nN$}C?8r+82!4u&*!0h)C}7pw<1Oip}mr@eGIpT z|6fi9V>UJcm6CfZCPQYXMLLUYuVdTt$jVQ%=j$hm}5S@7eiw+1Vsc{ z9jM3S(k~|lk|ew&E<2QH%pbkEV|Cv>Q&U0{3TQZ~@!?Q>mio2taSyWVJuaK|F7j_b zbk#0+pvsE>ua>YpyStTnTv(P6+tQd6BcgzXcc)W~r^c*!T0No$DiFr*q$1-K#?FYK z6f9S!^gukHayl;cU1w$D86oz6xH=W>X8k~*&}4A8*x2z(zJ&1V!1ud87fDM;>si55 zcWs#&0{X-KCi5I-)?XN>LTCe!T)yL0-`bX0e>BjGLA^MZzP;D6$oD)6wrUJ292NGY zk^55XZBEL<1J^n_ld}fG=;Ur!lO2qo$OK`62K1tlM!`=v&97e>^XF77UT8!}Dk#p) z2NQ_rg%x!tHl0l>W;PRpGgv$Nc34m0A1b<$mZg#|K)L82_HZRSB!A+W zobG8(?tSZ0Y=d0NhwuB=VH7Hi>sm~lUfnS#`k>WGKv*$#+wBe$;J{1Tef-n!)txe> zcGOn=%69TlOb-^>W!t?1RoQK|tAo1&#lki2;p3naB*tkHW$KmB5V+lfZ}F1(D-pnGGE|GjyjI1Z?P}aWUvc!_eMgKi8KC=;;m>9 zKWH)u9Z)yWk|Z!DjkJG$7##C@REi%L`cbGt`VB>CW(kFbK2lFABc3Zu?6N~{Q?To4 zu}#F}``{pYp^6#Z%ARxmScDb_P9DQBIpF<9P1ne(NK-iwg6$$EDd$0M9-O38f}Nr} z?KGZl1+gQAgT<4qKf_)(s*w1oms-1sV&CFX4YIN#O-L+?Xq#d?LzUPFq_otk)PQACC$Ny?jxy3H`!p5@2h$^%GBSe>(6 zw&DZhlqw%9pF1U0Syfy=87$({s-NYmI>;Atx#u2=C7&?^Hu?DXOvK5xGjsCfVvsV( zWEE-IR}=EiGaDCTteXVurZ4wjBTo<$Hcm5UE0~ZG?9XZYJ(xW2i<$MmM{UcIKE)qq z)b8-RF-5mI{xxCUcj8sq+{2)$@6TN1C7kycec?)R!?&Gz&exc@!YB{-4Z!1#zvy_6 z@H+Q*g`2gxJgv+IWF~ljW(NeQ^3Dp0bWb?5WH!nne

S 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

k!NlOtx() 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 Date: Sat, 24 Aug 2024 03:13:45 +0100 Subject: [PATCH 04/14] Update overview.rst --- docs/userguide/overview.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/userguide/overview.rst b/docs/userguide/overview.rst index 211dd743a7..e5d13b5b11 100644 --- a/docs/userguide/overview.rst +++ b/docs/userguide/overview.rst @@ -35,7 +35,7 @@ In Parsl, the distinction between a script and a workflow is essential: - **Script**: A Python file containing Parsl code that defines the tasks and their dependencies. - **Workflow**: The actual execution of the Parsl script, which coordinates multiple tasks across different resources, ensuring tasks are executed in the correct order based on their dependencies. -.. image:: ../images/script_vs_workflow.png +.. image:: ../images/ScriptvsWorkflow.png :alt: Script vs. Workflow :align: center :scale: 70% @@ -62,7 +62,7 @@ Concurrency vs. Parallelism Parsl facilitates both concurrency and parallelism, allowing tasks to be executed concurrently and leveraging parallel hardware to run them simultaneously on different processors or computers. -.. image:: ../images/how_parsl_manages_concurrency.png +.. image:: ../images/ParslManagesConcurrency.jpg :alt: How Parsl Manages Concurrency :align: center :scale: 70% @@ -320,7 +320,7 @@ A Parsl script defines tasks and their dependencies. Here’s a simple example: This script defines a task that doubles a number, runs 10 instances of this task in parallel, and prints the results. -.. image:: ../images/basic_parsl_script_flow.png +.. image:: ../images/BasicParslScriptFlow.jpg :alt: Diagram: Basic Parsl Script Flow :align: center :scale: 70% From 225204c97503bc3a39b37d51a236f691b580c089 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Sat, 24 Aug 2024 03:17:11 +0100 Subject: [PATCH 05/14] Update overview.rst --- docs/userguide/overview.rst | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/docs/userguide/overview.rst b/docs/userguide/overview.rst index e5d13b5b11..c0cce6a76d 100644 --- a/docs/userguide/overview.rst +++ b/docs/userguide/overview.rst @@ -37,9 +37,7 @@ In Parsl, the distinction between a script and a workflow is essential: .. image:: ../images/ScriptvsWorkflow.png :alt: Script vs. Workflow - :align: center - :scale: 70% - + Understanding this distinction is like differentiating between a recipe and the cooking process. The script is the recipe, while the workflow is the cooking process, orchestrating the execution of tasks. Key Features and Benefits @@ -64,9 +62,7 @@ Parsl facilitates both concurrency and parallelism, allowing tasks to be execute .. image:: ../images/ParslManagesConcurrency.jpg :alt: How Parsl Manages Concurrency - :align: center - :scale: 70% - + How Parsl Facilitates Parallel Computing ---------------------------------------- @@ -322,9 +318,7 @@ This script defines a task that doubles a number, runs 10 instances of this task .. image:: ../images/BasicParslScriptFlow.jpg :alt: Diagram: Basic Parsl Script Flow - :align: center - :scale: 70% - + Practical Tutorial: Hello World with Parsl ------------------------------------------ From e5a4e09d8892f7ac37ffa29bf2ce074a6afd0614 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Mon, 26 Aug 2024 17:33:45 +0100 Subject: [PATCH 06/14] Update overview.rst --- docs/userguide/overview.rst | 439 ++++++++++-------------------------- 1 file changed, 113 insertions(+), 326 deletions(-) diff --git a/docs/userguide/overview.rst b/docs/userguide/overview.rst index c0cce6a76d..151e6c1afc 100644 --- a/docs/userguide/overview.rst +++ b/docs/userguide/overview.rst @@ -1,380 +1,167 @@ -Overview -======== +Overview of Parsl +================= -What is Parsl and Its Applications? ------------------------------------ +Parsl is a Python library that simplifies the execution of parallel and distributed tasks by converting standard Python functions into "apps" that run asynchronously. These apps can be combined to form workflows, enabling complex data processing pipelines. Parsl automates task scheduling, dependency management, and resource allocation, allowing developers to focus on the core logic of their applications rather than the complexities of parallel execution. Whether you're working on a local machine or a massive supercomputing cluster, Parsl scales to meet your computational needs, supporting various applications, including those that use GPUs, external code, or multiple threads. -Parsl is a Python library designed to enable straightforward parallelism and the orchestration of asynchronous tasks into dataflow-based workflows. It simplifies the execution of tasks across multiple computing resources, from laptops to supercomputers, by managing the concurrent execution of these tasks. Parsl schedules each task only when its dependencies, such as input data, are met. This allows Python code to run concurrently on various processors or computers, significantly speeding up data processing and computational tasks. Parsl is particularly beneficial for applications where problems can be broken down into smaller, independent tasks, making it versatile for a wide range of uses—from simple Python functions to complex workflows. - -Developing a Parsl Program --------------------------- - -Developing a Parsl program is a two-step process: - -1. **Define Parsl Apps**: Annotate Python functions to indicate that they can be executed concurrently. -2. **Invoke Parsl Apps**: Use standard Python code to invoke these apps, creating asynchronous tasks and managing the dependencies defined between them. - -This approach allows you to create a mental model of how Parsl programs behave. You can compare and contrast the behavior of Python programs that use Parsl constructs with those of conventional Python programs. - -Common Applications -------------------- - -1. **Data Processing and Analysis**: Parsl accelerates the processing of large datasets by performing tasks like data cleaning, transformation, and analysis in parallel. For instance, in genomic data analysis, tasks such as sequence alignment and variant calling can be executed concurrently across multiple computing nodes, significantly speeding up the process. - -2. **Scientific Simulations**: Parsl supports the parallel execution of complex simulations in fields such as physics, chemistry, and biology. A practical example includes simulating CO2 molecule clusters in chemistry, where running simulations in parallel improves computational efficiency and statistical sampling. - -3. **Machine Learning**: Parsl can parallelize the training of machine learning models. For example, it can train multiple deep learning models with different hyperparameters simultaneously across various GPUs, reducing the time required to find the best-performing model. - -4. **Parameter Studies**: Parsl allows the execution of multiple program instances with varying parameters in parallel. This is particularly useful in materials science, where researchers can study material properties under different conditions by running simulations in parallel. - -Script vs. Workflow -------------------- - -In Parsl, the distinction between a script and a workflow is essential: - -- **Script**: A Python file containing Parsl code that defines the tasks and their dependencies. -- **Workflow**: The actual execution of the Parsl script, which coordinates multiple tasks across different resources, ensuring tasks are executed in the correct order based on their dependencies. - -.. image:: ../images/ScriptvsWorkflow.png - :alt: Script vs. Workflow - -Understanding this distinction is like differentiating between a recipe and the cooking process. The script is the recipe, while the workflow is the cooking process, orchestrating the execution of tasks. - -Key Features and Benefits -------------------------- - -- **Python-Based**: Parsl is written in Python, making it accessible to users familiar with the language. -- **Cross-Platform Compatibility**: Parsl runs on various platforms, from laptops to supercomputers, allowing for easy scaling. -- **Flexibility**: It supports different tasks, including Python functions, Bash scripts, and MPI applications, enabling the integration of existing code. -- **Data Handling**: Parsl manages data movement between tasks automatically, simplifying the development of data-intensive workflows. -- **Performance**: Parsl efficiently handles thousands of tasks per second, making it suitable for high-performance computing applications. - -Understanding Concurrency and Parallelism -========================================= - -Concurrency vs. Parallelism ----------------------------- - -- **Concurrency**: The ability of a program to handle multiple tasks simultaneously. These tasks may not execute at the same time but can overlap or be interleaved. -- **Parallelism**: The simultaneous execution of multiple tasks on different processors or computers, requiring hardware support for parallel processing. - -Parsl facilitates both concurrency and parallelism, allowing tasks to be executed concurrently and leveraging parallel hardware to run them simultaneously on different processors or computers. - -.. image:: ../images/ParslManagesConcurrency.jpg - :alt: How Parsl Manages Concurrency - -How Parsl Facilitates Parallel Computing ----------------------------------------- - -Parsl simplifies parallel computing by abstracting away the complexities of managing threads, processes, or inter-node communication. It allows you to focus on application logic by handling: - -- **Task Definition**: Defining tasks as Python functions or Bash scripts that can run in parallel. -- **Dependency Management**: Specifying dependencies between tasks to ensure correct execution order. -- **Resource Allocation**: Automatically allocating resources based on task dependencies and availability. -- **Task Execution**: Running tasks in parallel by utilizing available resources. -- **Data Management**: Managing data movement between tasks to ensure they have the necessary input data. -- **Result Collection**: Collecting task results for further processing in your Python code. - -Parsl and Concurrency -===================== - -Any call to a Parsl app creates a new task that executes concurrently with the main program and other tasks. This behavior contrasts with the sequential nature of standard Python programs, where statements are executed one at a time in the order they appear. - -In a traditional Python program, calling a function transfers control from the main program to the function, and execution of the main program resumes only after the function returns. However, in Parsl, whenever a program calls an app, a separate thread of execution is created, and the main program continues without pausing. The calling program will only block (wait) when explicitly told to do so, typically by calling the ``result()`` method. - -Execution Model: Python vs. Parsl ---------------------------------- - -The execution model of Parsl is inherently concurrent, which is a key difference from Python's native sequential execution model. The figures below illustrate this difference: - -1. **Python Sequential Execution**: - - In traditional Python, the main program pauses when a function is called and resumes only after the function returns. - -2. **Parsl Concurrent Execution**: - - In Parsl, when an app is called, a separate task is created, and the main program continues executing. The main program only waits if the ``result()`` method is called. - -This concurrent execution model enables Parsl to efficiently manage and execute multiple tasks in parallel, even across different nodes or computers. - -Parsl and Execution -=================== - -Parsl tasks are executed concurrently alongside the main Python program and other Parsl tasks. Depending on the computing environment, Parsl allows tasks to be executed using different executors, which are responsible for managing the execution of tasks on local or remote resources. - -Common Executors in Parsl --------------------------- - -1. **HighThroughputExecutor (HTEX)**: - The ``HighThroughputExecutor`` (HTEX) implements a pilot job model that enables fine-grain task execution across one or more provisioned nodes. HTEX can be used on a single node (e.g., a laptop) or across multiple nodes in a cluster. It communicates with a resource manager (e.g., a batch scheduler or cloud API) to provision nodes for the duration of execution. HTEX deploys lightweight worker agents on the nodes, which connect back to the main Parsl process. This model avoids long job scheduler queue delays and allows for efficient scheduling of many tasks on individual nodes. - - .. image:: ../images/overview/htex-model.png - :alt: HTEX Model - - **Note**: When deploying HTEX or any pilot job model, it is important to ensure that the worker nodes can connect back to the main Parsl process. Parsl provides a helper function, ``parsl.addresses.address_by_query``, to automatically detect network addresses. - -2. **ThreadPoolExecutor**: - The ``ThreadPoolExecutor`` allows tasks to be executed on a pool of locally accessible threads. As execution occurs on the same computer, the tasks share memory with one another. This executor is ideal for running tasks on a single machine where tasks need to share data or resources. - -Parsl and Communication -======================= - -Parsl tasks typically need to communicate to perform useful work. Parsl supports two primary forms of communication: parameter passing and file passing. - -Parameter Passing ------------------ - -In Parsl, parameters can be passed directly between tasks. When a task is created, it receives its input parameters and, upon completion, returns the output to the main program or another task. While simple primitive types like integers are commonly passed, more complex objects such as Numpy arrays, Pandas DataFrames, or custom objects can also be passed to and from tasks. - -File Passing +Key Concepts ------------ -Parsl also supports communication via files, which is especially useful when dealing with large datasets or when tasks are designed to work with files. Parsl uses the ``parsl.data_provider.files.File`` construct for location-independent reference to files. This allows tasks to be executed on remote nodes without shared file systems. Parsl can transfer files in, out, and between tasks using methods such as FTP, HTTP(S), Globus, and rsync. The asynchronous nature of file transfer is managed by Parsl, which adds these transfers as dependencies in the execution graph. - -Synchronization with Futures ------------------------------ +Parsl introduces several important concepts that differentiate it from traditional Python programming: -Futures in Parsl serve as placeholders for the results of tasks. When a task is created, it returns a future that initially remains in an unassigned state until the task completes. The ``result()`` method is used to retrieve the result, and this method blocks the main program until the future is resolved. This synchronization mechanism ensures that dependent tasks execute in the correct order. - -.. image:: ../images/overview/communication.png - :alt: Communication and Synchronization - -The Parsl Environment -===================== +- **Parallel Computing:** Executing multiple processes simultaneously, essential for efficiently handling large datasets or complex simulations. +- **Tasks and Workflows:** A task in Parsl is an individual unit of work, such as a function call. A workflow is a series of tasks connected by dependencies, defining the order in which tasks are executed based on the availability of their inputs. +- **Execution Environments:** Parsl can execute tasks in various environments, including local machines, clusters, and cloud platforms. The execution environment determines how tasks are distributed across available resources. +- **Scheduling and Resource Management:** Parsl automates the allocation of computational resources, ensuring tasks are executed in an optimal order without exceeding resource limits. -Parsl enhances Python by altering the environment in which code executes, including the memory environment, file system environment, and service environment. - -Memory Environment ------------------- - -In Python, a function has access to both local variables (defined within the function) and global variables (defined outside the function). However, in Parsl, except when using the ``ThreadPoolExecutor``, each task runs in a distinct environment with access only to local variables associated with the app function. - -For example, consider the following code: - -.. code-block:: python - - answer = 42 +Developing a Parsl Program +-------------------------- - def print_answer(): - print('the answer is', answer) +Creating a Parsl program involves two main steps: - print_answer() +1. **Defining Parsl Apps:** A Parsl app is a Python function decorated with ``@python_app`` (for Python functions) or ``@bash_app`` (for command-line applications). These decorators indicate that the function can be executed asynchronously, allowing it to run in parallel with other tasks. -In regular Python, the ``print_answer`` function would output "the answer is 42" because it accesses the global variable ``answer``. However, in Parsl (except when using the ``ThreadPoolExecutor``), if this program is executed, the function would print "the answer is 0" because the print statement in ``print_answer`` would not have access to the global variable that has been assigned the value 42. This behavior is due to the fact that Parsl apps run in a distinct environment with no access to global variables. +2. **Invoking Parsl Apps:** Once apps are defined, they can be invoked like regular Python functions. Instead of returning immediate results, these invocations return futures—objects that represent the eventual outcome of the function, allowing the main program to continue executing while the app runs in the background. -To ensure compatibility with all Parsl executors, you should pass any required variables as arguments to the function, and import any necessary modules within the function itself, as shown below: +Example: .. code-block:: python - import random - factor = 5 + from parsl import python_app @python_app - def good_double(factor, x): - import random - return x * random.random() * factor - - print(good_double(factor, 42).result()) - -This ensures that the function runs correctly regardless of the executor used. - -File System Environment -======================== - -In a regular Python program, the environment accessible to the code includes the file system of the computer on which it is running. For example: - -.. code-block:: python - - def print_answer_file(): - with open('answer.txt', 'r') as f: - print('the answer is', f.read()) - - with open('answer.txt', 'w') as f: - f.write('42') - - print_answer_file() - -The above code writes the value "42" to a file named ``answer.txt`` and then reads it back to print "the answer is 42". In Parsl, the file system environment accessible to a task depends on where the task executes. If two tasks run on nodes that share a file system, they can share the file system environment, allowing one task to read a file written by another task. However, if the tasks are executed on nodes without a shared file system, they will not share the file environment, and attempts to read the file would fail. - -The diagram below illustrates this scenario: - -.. image:: ../images/overview/filesystem.png - :alt: File System Environment - -Service Environment -==================== - -The service environment refers to network services accessible to a Parsl program, such as a Redis server or Globus data management service. These services are typically accessible to any task, regardless of the executor used or the location of the task. - -Environment Summary -==================== - -The table below summarizes the differences in environment sharing between tasks executed with the ``ThreadPoolExecutor`` and other Parsl executors: - -.. list-table:: - :header-rows: 1 - - * - - - Share Memory Environment with Parent/Other Tasks - - Share File System Environment with Parent - - Share File System Environment with Other Tasks - - Share Service Environment with Other Tasks - * - Python without Parsl - - Yes - - Yes - - N/A - - N/A - * - Parsl ``ThreadPoolExecutor`` - - Yes - - Yes - - Yes - - N/A - * - Other Parsl Executors - - No - - If executed on the same node with file system access - - If tasks are executed on the same node or with access to the same file system - - N/A - -Getting Started with Parsl -=========================== - -Installation and Setup ------------------------ - -System Requirements and Dependencies -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Parsl is compatible with Python 3.8 or newer and has been tested on Linux. Ensure Python and pip are installed on your system before proceeding. - -Installation on Different Platforms -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- **Windows**: Parsl is not officially supported on Windows, but you can use the Windows Subsystem for Linux (WSL) to run it. -- **Docker**: Parsl can be run in a Docker container, providing a portable environment. -- **macOS**: Install Parsl using pip or conda. On Macs with M1 chips, use a Rosetta terminal for compatibility. -- **Linux**: Parsl is well-supported on Linux and can be installed using pip or conda. -- **Android**: While Parsl is not designed for Android, you can use platforms like Google Colab to run Parsl scripts in a browser. + def add(x, y): + return x + y -Installing Parsl -~~~~~~~~~~~~~~~~ + result = add(3, 4) + print(result.result()) # Expected outcome: 7 -To install Parsl using pip, run: +In this example, the ``add`` function is executed asynchronously. The main program continues executing without waiting for the result, which is retrieved later using ``result.result()``. -.. code-block:: bash +.. note:: + The behavior of a Parsl program can vary in minor respects depending on the + Executor used (see :ref:`label-execution`). We focus here on the behavior seen when + using the recommended `parsl.executors.HighThroughputExecutor` (HTEX). - python3 -m pip install parsl - -Verify the installation with: - -.. code-block:: bash - - parsl --version - -Upgrade to the latest version with: - -.. code-block:: bash - - python3 -m pip install -U parsl - -Basic Configuration +Parsl and Concurrency --------------------- -Parsl separates your code from how it's executed through a configuration file that defines how Parsl uses computing resources. A simple configuration for running Parsl on your local machine might look like this: - -.. code-block:: python - - from parsl.config import Config - from parsl.executors import ThreadPoolExecutor +In Parsl, any call to an app creates a new task that executes concurrently with the main program and other currently executing tasks. These tasks may run on the same or different nodes, and on the same or different computers. - config = Config( - executors=[ThreadPoolExecutor(max_threads=4)] - ) +**Python Execution Models:** -This configuration uses up to four threads in parallel on your local machine. +- In a typical Python program, tasks are executed sequentially, one after the other, in the order they appear. When a function is called, control passes from the main program to the function and resumes only after the function returns. +- Parsl's execution model is inherently concurrent. When a program calls an app, it creates a separate thread of execution, allowing the main program to continue without pausing. For instance, calling the ``double`` app twice creates two new tasks that can run concurrently. -Writing and Running a Parsl Script ------------------------------------ +.. image:: ../images/overview/python-concurrency.png + :scale: 70 + :align: center -A Parsl script defines tasks and their dependencies. Here’s a simple example: +**Concurrency vs. Parallelism:** -.. code-block:: python +- **Concurrency** allows multiple tasks to start, run, and complete in overlapping periods, but not necessarily simultaneously. +- **Parallelism** implies that multiple tasks actually run simultaneously, which is possible if there are enough processors available. - import parsl - from parsl.config import Config - from parsl.executors import HighThroughputExecutor - from parsl import python_app +.. image:: ../images/overview/parsl-concurrency.png - config = Config(executors=[HighThroughputExecutor(max_workers=4)]) - parsl.load(config) - @python_app - def my_task(x): - return x * 2 +.. note:: + Note: We talk here about concurrency rather than parallelism for a reason. + Two activities are concurrent if they can execute at the same time. Two + activities occur in parallel if they do run at the same time. If a Parsl + program creates more tasks that there are available processors, not all + concurrent activities may run in parallel. - results = [my_task(i) for i in range(10)] +Parsl and Execution +------------------- - for result in results: - print(result.result()) +Parsl allows tasks to be executed across various computational resources using different executors. Executors manage a queue of tasks and execute them on local or remote resources. -This script defines a task that doubles a number, runs 10 instances of this task in parallel, and prints the results. +**Executors Overview:** -.. image:: ../images/BasicParslScriptFlow.jpg - :alt: Diagram: Basic Parsl Script Flow - -Practical Tutorial: Hello World with Parsl ------------------------------------------- +1. **HighThroughputExecutor (HTEX):** + - HTEX implements a pilot job model that facilitates fine-grain task execution across one or more provisioned nodes. It can be used on a single node, such as a laptop, and leverages multiple processes for concurrent execution. + - HTEX uses Parsl's provider abstraction to communicate with resource managers (e.g., batch schedulers or cloud APIs) to provision nodes. A lightweight worker agent deployed on these nodes connects back to the main Parsl process, distributing tasks and collecting results. -A basic "Hello World" script in Parsl: +2. **ThreadPoolExecutor:** + - This executor allows tasks to be executed on a pool of locally accessible threads. Execution occurs on the same computer, and tasks share memory with one another. + - ``ThreadPoolExecutor`` is ideal for applications requiring high concurrency on a single machine, as tasks share the same memory and resources. -.. code-block:: python +.. image:: ../images/overview/htex-model.png - import parsl - from parsl import python_app +.. Note: + Note: when deploying HTEX, or any pilot job model such as the + WorkQueueExecutor, it is important that the worker nodes be able to connect + back to the main Parsl process. Thus, you should verify that there is network + connectivity between the workers and the Parsl process and ensure that the + correct network address is used by the workers. Parsl provides a helper + function to automatically detect network addresses + (`parsl.addresses.address_by_query`). - @python_app - def hello(name): - return f'Hello, {name}!' +The `parsl.executors.ThreadPoolExecutor` allows tasks to be executed on a pool of locally +accessible threads. As execution occurs on the same computer, on a pool of +threads forked from the main program, the tasks share memory with one another +(this is discussed further in the following sections). - parsl.load() - result = hello("World").result() - print(result) # Output: Hello, World! -This script demonstrates the core components of a Parsl program, including importing Parsl, loading a configuration, defining an app, calling the app, and retrieving results. +Parsl and Communication +----------------------- -Setting Up Your First Parsl Workflow -------------------------------------- +Parsl tasks often need to communicate with each other to perform useful work. Parsl provides two primary forms of communication: parameter passing and file passing. -To set up your first Parsl workflow, you'll need to: +**Parameter Passing:** -1. **Install Parsl**: Follow the installation instructions in the "Installation and Setup" section to install Parsl on your system. -2. **Choose a Configuration**: Select a configuration that matches your computing environment. Parsl provides several example configurations for different platforms, such as laptops, clusters, and clouds. You can also create custom settings. -3. **Write a Parsl Script**: Define the tasks you want to run in parallel and their dependencies. -4. **Load the Configuration**: Use the ``parsl.load()`` function to load your chosen configuration. -5. **Run Your Script**: Execute a Parsl script like any other Python script. Parsl will then take care of executing your tasks in parallel, managing dependencies, and moving data as needed. +Tasks exchange values directly, allowing the results of one task to be used as inputs for another. This method supports both simple primitive types and complex objects like Numpy Arrays or Pandas DataFrames. -Advanced Concepts: Parsl Environment and Execution -=================================================== +**File Passing:** -Parsl and Concurrency ----------------------- +File passing is useful for exchanging large datasets or when data cannot be easily serialized into Python objects. Parsl supports file-based communication in both Bash and Python apps. For tasks running on remote nodes without shared file systems, Parsl uses a ``parsl.data_provider.files.File`` construct for location-independent file references. -As previously mentioned, any call to a Parsl app creates a new task that executes concurrently with the main program and other tasks. This behavior contrasts with the sequential nature of standard Python programs, where statements are executed one at a time in the order they appear. +**Futures for Synchronization:** -Execution Model: Python vs. Parsl ----------------------------------- +Parameter and file passing also serve as synchronization mechanisms. When a Parsl app is called, it returns a "future" object that holds the app's result. The ``result()`` function blocks the main program until the future has a value, ensuring that dependent tasks do not proceed until their inputs are ready. -The execution model of Parsl is inherently concurrent, which is a key difference from Python's native sequential execution model. This enables Parsl to efficiently manage and execute multiple tasks in parallel, even across different nodes or computers. +The Parsl Environment +--------------------- -Task Communication -------------------- +Parsl enhances Python by modifying the environment in which code executes. The environment refers to the variables and modules (*memory environment*), file systems (*file system environment*), and services (*service environment*) accessible to a function. -Parsl supports communication between tasks via parameter and file passing. Parameters can be passed directly between tasks, while files can be used when dealing with large datasets or when tasks are designed to work with files. Parsl manages file transfers as asynchronous tasks, ensuring that dependencies are met before execution. +**Memory Environment:** -Synchronization with Futures ------------------------------ +In regular Python, functions have access to both local and global variables. In Parsl, tasks executed with the ``parsl.executors.HighThroughputExecutor`` (HTEX) operate in a distinct environment, accessing only local variables associated with the function. This contrasts with the ``parsl.executors.ThreadPoolExecutor``, where tasks share the memory environment with the main program. -Futures in Parsl serve as placeholders for the results of tasks. When a task is created, it returns a future that remains in an unassigned state until the task completes. The ``result()`` method is used to retrieve the result, and this method blocks the main program until the future is resolved. This synchronization mechanism ensures that dependent tasks execute in the correct order. +**File System Environment:** -Environment Considerations ---------------------------- +The file system environment determines which files are accessible to a task. In a regular Python program, tasks have access to the entire file system. In Parsl, the file system environment depends on where the task is executed. Tasks on nodes with shared file systems can share files, while tasks on different nodes may need to transfer files explicitly. -Parsl enhances Python by altering the environment in which code executes, including the memory environment, file system environment, and service environment. Understanding these environments is crucial for developing efficient and reliable Parsl applications. +.. image:: ../images/overview/filesystem.png + :scale: 70 + :align: center + +**Service Environment:** + +The service environment includes network services accessible to Parsl tasks, such as Redis servers or Globus data management services. These services are available to all tasks within the environment. + +**Environment Summary:** + +Tasks executed with the ``parsl.executors.ThreadPoolExecutor`` share the memory and file system environment with the main program. In contrast, tasks executed with other Parsl executors may have isolated environments, depending on the executor and node configuration. + ++--------------------+--------------------+--------------------+---------------------------+------------------+ +| | Share memory | Share file system | Share file system | Share service | +| | environment with | environment with | environment with other | environment | +| | parent/other tasks | parent | tasks | with other tasks | ++====================+====================+====================+===========================+==================+ ++--------------------+--------------------+--------------------+---------------------------+------------------+ +| Python | Yes | Yes | N/A | N/A | +| without | | | | | +| Parsl | | | | | ++--------------------+--------------------+--------------------+---------------------------+------------------+ +| Parsl | Yes | Yes | Yes | N/A | +| ThreadPoolExecutor | | | | | +| | | | | | ++--------------------+--------------------+--------------------+---------------------------+------------------+ +| Other Parsl | No | If executed on the | If tasks are executed on | N/A | +| executors | | same node with | the same node or with | | +| | | file system access | access to the same file | | +| | | | system | | ++--------------------+--------------------+--------------------+---------------------------+------------------+ From 792fb17723dcabd4b8dfec6d2967eade37fe0948 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Mon, 26 Aug 2024 18:40:55 +0100 Subject: [PATCH 07/14] Update overview.rst --- docs/userguide/overview.rst | 473 ++++++++++++++++++++++++++++-------- 1 file changed, 365 insertions(+), 108 deletions(-) diff --git a/docs/userguide/overview.rst b/docs/userguide/overview.rst index 151e6c1afc..2c603234ff 100644 --- a/docs/userguide/overview.rst +++ b/docs/userguide/overview.rst @@ -1,167 +1,424 @@ -Overview of Parsl -================= +Overview +======== -Parsl is a Python library that simplifies the execution of parallel and distributed tasks by converting standard Python functions into "apps" that run asynchronously. These apps can be combined to form workflows, enabling complex data processing pipelines. Parsl automates task scheduling, dependency management, and resource allocation, allowing developers to focus on the core logic of their applications rather than the complexities of parallel execution. Whether you're working on a local machine or a massive supercomputing cluster, Parsl scales to meet your computational needs, supporting various applications, including those that use GPUs, external code, or multiple threads. +What is Parsl and What Can It Be Used For? +------------------------------------------ -Key Concepts ------------- +**Parsl** is a Python library designed to simplify the process of splitting a problem into smaller tasks that can be executed at the same time – in parallel – using multiple computing resources (parallel programming). It allows you to write Python code that can run across multiple computers or processors at the same time, potentially speeding up your calculations and data processing tasks significantly. Parsl is particularly well-suited for problems that can be broken down into smaller, independent steps. It can handle a wide range of applications, from simple Python functions to complex workflows involving multiple steps and different types of tasks. -Parsl introduces several important concepts that differentiate it from traditional Python programming: +Common Applications +~~~~~~~~~~~~~~~~~~~ -- **Parallel Computing:** Executing multiple processes simultaneously, essential for efficiently handling large datasets or complex simulations. -- **Tasks and Workflows:** A task in Parsl is an individual unit of work, such as a function call. A workflow is a series of tasks connected by dependencies, defining the order in which tasks are executed based on the availability of their inputs. -- **Execution Environments:** Parsl can execute tasks in various environments, including local machines, clusters, and cloud platforms. The execution environment determines how tasks are distributed across available resources. -- **Scheduling and Resource Management:** Parsl automates the allocation of computational resources, ensuring tasks are executed in an optimal order without exceeding resource limits. +- **Data processing and analysis:** Parsl can process large datasets in parallel, speeding up tasks like data cleaning, transformation, and analysis. Researchers can use Parsl to parallelize genomic data analysis, where large datasets of DNA sequences are cleaned, aligned, and analyzed to identify genetic variations. This process can be significantly accelerated by executing tasks like sequence alignment and variant calling in parallel across multiple computing nodes. + +- **Scientific simulations:** Parsl can run complex simulations in parallel, such as those used in physics, chemistry, and biology. For instance, Parsl has been used in chemistry to parallelize dynamic simulations of small CO\ :sub:`2` molecule clusters. This involves using a flexible monomer two-body carbon dioxide potential function to understand the vibrational structure of these clusters at high levels of quantum mechanical theory. By running these simulations in parallel, computational efficiency is increased, and statistical sampling is improved. -Developing a Parsl Program --------------------------- +- **Machine learning:** Parsl can train and deploy machine learning models in parallel, improving performance and scalability. For example, Parsl can be employed to parallelize the training of models by training multiple deep learning models with different hyperparameters simultaneously to find the best-performing model. This parallel training can be done across various GPUs, reducing the time required to train and evaluate the models. -Creating a Parsl program involves two main steps: +- **Parameter studies:** Parsl can run multiple program instances with different parameters in parallel, exploring a wider range of possibilities. For example, in materials science, researchers might run simulations to study the properties of new materials under different conditions. By using Parsl, they can execute multiple simulation instances with varying parameters, like temperature or pressure, in parallel. This allows for a comprehensive exploration of the material’s behavior across various conditions. -1. **Defining Parsl Apps:** A Parsl app is a Python function decorated with ``@python_app`` (for Python functions) or ``@bash_app`` (for command-line applications). These decorators indicate that the function can be executed asynchronously, allowing it to run in parallel with other tasks. +Script vs. Workflow +------------------- -2. **Invoking Parsl Apps:** Once apps are defined, they can be invoked like regular Python functions. Instead of returning immediate results, these invocations return futures—objects that represent the eventual outcome of the function, allowing the main program to continue executing while the app runs in the background. +In Parsl, there's a distinction between a **script** and a **workflow**. -Example: +- **Script:** A single Python file containing Parsl code. It defines the tasks to be executed and their dependencies. -.. code-block:: python +- **Workflow:** The actual execution of a Parsl script. It involves coordinating multiple tasks across different resources, such as processors or computers. - from parsl import python_app +Understanding the role of a Parsl script and a workflow is like understanding the difference between a recipe and the cooking process. A Parsl script can be thought of as a recipe, where the ingredients are the tasks and the steps are the dependencies. The workflow, on the other hand, is the process of cooking that recipe. It orchestrates the actual cooking process, ensuring that the steps are followed correctly and the ingredients are combined at the right time. - @python_app - def add(x, y): - return x + y +.. image:: images/ScriptvsWorkflow.png + :alt: Script vs. Workflow + :align: center - result = add(3, 4) - print(result.result()) # Expected outcome: 7 +Key Features and Benefits +~~~~~~~~~~~~~~~~~~~~~~~~~ -In this example, the ``add`` function is executed asynchronously. The main program continues executing without waiting for the result, which is retrieved later using ``result.result()``. +Parsl offers several features and benefits that make it a powerful tool for parallel programming. -.. note:: - The behavior of a Parsl program can vary in minor respects depending on the - Executor used (see :ref:`label-execution`). We focus here on the behavior seen when - using the recommended `parsl.executors.HighThroughputExecutor` (HTEX). +- **Python-based:** Parsl is written in this popular and easy-to-learn programming language. This makes it accessible to a wide range of users, including those without extensive experience in parallel programming. -Parsl and Concurrency ---------------------- +- **Works everywhere:** Parsl can run on various platforms, from your laptop to large-scale clusters and supercomputers. This flexibility allows you to develop and test your code locally and then easily scale it up to larger systems. + +- **Flexible:** Parsl supports different tasks, including Python functions, Bash scripts, and MPI applications. This allows you to leverage existing code and tools in your parallel workflows. + +- **Handles data:** Parsl can automatically manage the data movement between tasks, even if they are running on different computers. This simplifies the development of data-intensive workflows. + +- **Fast:** Parsl is designed to be efficient and handle thousands of tasks per second, making it suitable for high-performance computing applications. + +Understanding Concurrency and Parallelism +----------------------------------------- -In Parsl, any call to an app creates a new task that executes concurrently with the main program and other currently executing tasks. These tasks may run on the same or different nodes, and on the same or different computers. +Concurrency vs. Parallelism +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -**Python Execution Models:** +Concurrency and parallelism are related but distinct concepts in computing. -- In a typical Python program, tasks are executed sequentially, one after the other, in the order they appear. When a function is called, control passes from the main program to the function and resumes only after the function returns. -- Parsl's execution model is inherently concurrent. When a program calls an app, it creates a separate thread of execution, allowing the main program to continue without pausing. For instance, calling the ``double`` app twice creates two new tasks that can run concurrently. +- **Concurrency** is a program's ability to handle multiple tasks at once. These tasks may not necessarily be executed simultaneously but can be interleaved or overlapped. -.. image:: ../images/overview/python-concurrency.png - :scale: 70 +- **Parallelism** is the simultaneous execution of multiple tasks on different processors or computers. This requires hardware support for parallel processing, such as multiple cores or nodes. + +Concurrency is a more general concept that can be achieved even on a single processor through techniques such as time-sharing or multithreading. Parallelism, on the other hand, requires multiple processors and involves the actual simultaneous execution of tasks. + +Parsl enables both concurrency and parallelism. It allows you to define tasks that can be executed concurrently and leverages parallel hardware to run those tasks simultaneously on different processors or computers. + +.. image:: images/ParslManagesConcurrency.jpg + :alt: Parsl Manages Concurrency :align: center -**Concurrency vs. Parallelism:** +Parsl Facilitates Parallel Computing +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- **Concurrency** allows multiple tasks to start, run, and complete in overlapping periods, but not necessarily simultaneously. -- **Parallelism** implies that multiple tasks actually run simultaneously, which is possible if there are enough processors available. +Parsl makes parallel computing easier by offering a simple way to define and run tasks. You don't need to worry about the low-level details of managing threads, processes, or inter-node communication. Parsl takes care of these aspects, allowing you to focus on your application logic. -.. image:: ../images/overview/parsl-concurrency.png +Here's how: +- **Task definition:** You define tasks as Python functions or Bash scripts, using decorators to indicate that they can be run in parallel. -.. note:: - Note: We talk here about concurrency rather than parallelism for a reason. - Two activities are concurrent if they can execute at the same time. Two - activities occur in parallel if they do run at the same time. If a Parsl - program creates more tasks that there are available processors, not all - concurrent activities may run in parallel. +- **Dependency management:** You specify dependencies between tasks, indicating which tasks must be completed before others can start. -Parsl and Execution +- **Resource allocation:** Parsl automatically allocates resources (processors or computers) to tasks based on their dependencies and the available resources. + +- **Task execution:** Parsl executes tasks in parallel by utilizing available resources. + +- **Data management:** Parsl automatically manages the data movement between tasks, ensuring each task has the necessary input data when it starts. + +- **Result collection:** Parsl collects the results of tasks as they are completed, allowing you to access them in your Python code. + +By handling these aspects, Parsl makes writing parallel programs that are efficient, scalable, and portable across different platforms easier. + +Getting Started with Parsl +=========================== + +Installation and Setup +---------------------- + +System Requirements and Dependencies +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Parsl is compatible with Python 3.8 or newer. It has been tested on Linux. To install Parsl, you must have Python and pip (Python's package installer) on your system. + +Windows OS +~~~~~~~~~~ + +While Parsl is not officially supported on Windows, you can install and run it using the `Windows Subsystem for Linux (WSL) `_, which allows you to run a Linux environment directly on Windows. If you want to lead the development of Windows OS support for Parsl, please participate in this issue: `GitHub Issue #1878 `_. + +To install Parsl in WSL, follow these steps: + +.. code-block:: bash + + dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart + +Install a Linux distribution (e.g., Ubuntu) and update and upgrade packages: + +.. code-block:: bash + + sudo apt update && sudo apt upgrade + +Install Python and pip: + +.. code-block:: bash + + sudo apt install python3 python3-pip + +Install Parsl: + +.. code-block:: bash + + python3 -m pip install parsl + +Docker +~~~~~~ + +Docker is a platform for developing, shipping, and running container applications. You can use Docker to create a portable Parsl environment that can run on any system with Docker installed. + +To install Parsl in Docker, follow these steps: + +.. code-block:: bash + + docker pull parsl/parsl + +Run a Parsl container: + +.. code-block:: bash + + docker run -it parsl/parsl bash + +MacOS +~~~~~ + +Parsl can be installed on macOS using pip or conda. If you use a Mac with an M1 chip, you may need to install Parsl in a Rosetta terminal to ensure compatibility with the required libraries. + +Linux +~~~~~ + +Parsl is well-supported on Linux and can be installed using pip or conda. You can access the terminal by searching for "terminal" in your applications menu or by pressing Ctrl+Alt+T. + +Android +~~~~~~~ + +Parsl is not designed to run on Android devices directly. However, there are workarounds, such as using online platforms like Google Colaboratory to run Parsl scripts in a web browser environment. These platforms provide a Jupyter Notebook interface where you can write and execute Parsl code. + +Installing Parsl +~~~~~~~~~~~~~~~~ + +You can easily install Parsl using pip: + +.. code-block:: bash + + python3 -m pip install parsl + +To check if it is installed correctly, run the following command in your terminal or command prompt: + +.. code-block:: bash + + parsl --version + +If Parsl is installed, this command will print the version number. If you get an error, double-check that Python and pip are installed correctly. + +To upgrade Parsl to the latest version, use: + +.. code-block:: bash + + python3 -m pip install -U parsl + +If you are using the conda package manager, you can install Parsl from the conda-forge channel: + +.. code-block:: bash + + conda config --add channels conda-forge + conda install parsl + +Common Errors +~~~~~~~~~~~~~ + +Here are some common errors you might encounter during installation and how to fix them: + +- **Dependency errors:** Parsl has several dependencies, such as `pyzmq`, `dill`, and `globus-sdk`. If you encounter errors related to these dependencies, try installing them manually using pip. For example: + + .. code-block:: bash + + python3 -m pip install pyzmq dill globus-sdk + +- **ERROR: Could not find a version that satisfies the requirement parsl:** This means that pip cannot find a compatible version of Parsl for your Python version. Make sure you are using Python 3.8 or newer. + +- **ModuleNotFoundError: No module named 'parsl':** This means that Parsl is not installed. Make sure you have followed the installation instructions correctly. + +- **Permission errors:** If you get permission errors during installation, try running the pip command with `sudo` (Linux/macOS) or as an administrator (Windows). + +If you encounter other errors, please consult the Parsl documentation or seek help from the Parsl community in the `#parsl-help `_ channel on Slack. + +Basic Configuration ------------------- -Parsl allows tasks to be executed across various computational resources using different executors. Executors manage a queue of tasks and execute them on local or remote resources. +Parsl separates your code (the tasks you want to run) from how it's executed (where and how those tasks run). This is done through a configuration file that tells Parsl how to use your computing resources. -**Executors Overview:** +A simple configuration for running Parsl on your local machine might look like this: -1. **HighThroughputExecutor (HTEX):** - - HTEX implements a pilot job model that facilitates fine-grain task execution across one or more provisioned nodes. It can be used on a single node, such as a laptop, and leverages multiple processes for concurrent execution. - - HTEX uses Parsl's provider abstraction to communicate with resource managers (e.g., batch schedulers or cloud APIs) to provision nodes. A lightweight worker agent deployed on these nodes connects back to the main Parsl process, distributing tasks and collecting results. +.. code-block:: python -2. **ThreadPoolExecutor:** - - This executor allows tasks to be executed on a pool of locally accessible threads. Execution occurs on the same computer, and tasks share memory with one another. - - ``ThreadPoolExecutor`` is ideal for applications requiring high concurrency on a single machine, as tasks share the same memory and resources. + from parsl.config import Config + from parsl.executors import ThreadPoolExecutor -.. image:: ../images/overview/htex-model.png + config = Config( + executors=[ThreadPoolExecutor(max_threads=4)] + ) -.. Note: - Note: when deploying HTEX, or any pilot job model such as the - WorkQueueExecutor, it is important that the worker nodes be able to connect - back to the main Parsl process. Thus, you should verify that there is network - connectivity between the workers and the Parsl process and ensure that the - correct network address is used by the workers. Parsl provides a helper - function to automatically detect network addresses - (`parsl.addresses.address_by_query`). +This configuration tells Parsl to use your local machine's resources and run tasks using up to 4 threads in parallel. -The `parsl.executors.ThreadPoolExecutor` allows tasks to be executed on a pool of locally -accessible threads. As execution occurs on the same computer, on a pool of -threads forked from the main program, the tasks share memory with one another -(this is discussed further in the following sections). +First Steps +=========== +Writing a Parsl Script +---------------------- -Parsl and Communication +A Parsl script is a Python script that defines the tasks you want to run in parallel and how they depend on each other. + +Here's a simple example: + +.. code-block:: python + + !pip install parsl + import parsl + from parsl.config import Config + from parsl.executors import HighThroughputExecutor + + # Configure Parsl (Local Threads) + config = Config(executors=[HighThroughputExecutor(max_workers=4)]) # Use 4 threads + parsl.load(config) + + import parsl + from parsl import python_app + + @python_app + def my_task(x): + return x * 2 + + results = [] + for i in range(10): + results.append(my_task(i)) + + # Indent the following block to be part of the 'for' loop + for result in results: + print(result.result()) + +These scripts define a task called `my_task` that doubles a number. Run the first and then the second (top to bottom). It then creates 10 instances of this task, each with a different input, and runs them in parallel. Finally, it prints the results as they become available. To check if this script worked, you should see the numbers 0 through 18 printed to your console, although not necessarily in order. + +.. image:: images/BasicParslScriptFlow.jpg + :alt: Basic Parsl Script Flow + :align: center + +Parsl Script Basic Workflow +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- **Import Parsl:** The script begins by importing the Parsl library, which provides the necessary tools and functions for parallel execution. +- **Load Configuration:** A configuration object is loaded, specifying the resources (e.g., local threads, clusters, clouds) that Parsl will use to execute tasks. This step is crucial as it tailors Parsl's behavior to the specific computing environment. +- **Define Apps:** Python functions are decorated with special tags (`@python_app` or `@bash_app`) to indicate that they can be run in parallel as independent tasks. +- **Call Apps:** The decorated functions (apps) are invoked, creating futures. Futures are placeholders for the results of these parallel tasks, allowing the script to continue without waiting for each task to finish. +- **DataFlowKernel (DFK):** The DFK, the core of Parsl, takes over. It manages the execution of tasks, ensuring they run when their dependencies (e.g., input data) are ready and resources are available. +- **Task Execution:** The DFK sends tasks to executors, which are responsible for running the tasks on the specified resources (e.g., different cores or nodes). +- **Get Results:** Once tasks are completed, the `.result()` method is used to retrieve the results from the futures. The script can then use these results for further processing or analysis. +- **End:** The script concludes after all tasks have been executed and their results have been retrieved. + +To run a Parsl script, you first need to load the configuration: + +.. code-block:: python + + parsl.load(config) + +This tells Parsl how to execute the tasks in your script. Once the configuration is loaded, you can run your script like any other Python script. + +Practical Tutorial: Hello World with Parsl +------------------------------------------ + +Let's look at a simplified example: + +.. code-block:: python + + import parsl + from parsl import python_app + + # Define a Parsl app (a function that can run in parallel) + @python_app + def hello(): + return "Hello Frodo!" + + # Run the app and get the result + result = hello().result() + print(result) # Output: Hello, Frodo! + +This script defines a Parsl app called `hello` that takes a name and returns a greeting. It then runs the app with the input "Frodo" and prints the result. If this script worked, you should see "Hello, Frodo!" printed to your console. + +Getting Started Tutorial +======================== + +The best way to learn Parsl is by doing. Let's revisit the "Hello World" example from above in-depth: + +.. code-block:: python + + import parsl + from parsl import python_app + + # Start Parsl + parsl.load(config) + + # Define a Parsl app (a function that can run in parallel) + @python_app + def hello(name): + return f'Hello, {name}!' + + # Run the app and get the result + result = hello("World").result() + print(result) # Output: Hello, World! + +This script demonstrates the core components of a Parsl program: + +- **Importing Parsl:** The `import parsl` line brings in the Parsl library, giving you access to its functions and classes. +- **Loading Configuration:** The `parsl.load(config)` line initializes Parsl with your chosen configuration. This configuration specifies how Parsl will use your computing resources. In this example, we're using a simple configuration for running Parsl on your local machine. +- **Defining an App:** The `@python_app` decorator tells Parsl that the `hello` function is a Parsl app, meaning it can be run in parallel. +- **Calling the App:** The `hello("World")` line calls the app with the argument "World". This doesn't run the function immediately; instead, it returns a future, a placeholder for the result that will be available later. +- **Getting the Result:** The `.result()` method waits for the app to finish and then returns the result, which is the string "Hello, World!". +- **Printing the Result:** The last line prints the result to the console. + +Practical Example: Setting Up Your First Parsl Workflow +------------------------------------------------------- + +To set up your first Parsl workflow, you'll need to: + +1. **Install Parsl:** Follow the instructions in the "Installation and Setup" section to install Parsl on your system. +2. **Choose a configuration:** Select a configuration that matches your computing environment. Parsl provides several example configurations for different platforms, such as laptops, clusters, and clouds. You can also create custom settings. +3. **Write a Parsl script:** Define the tasks you want to run in parallel and their dependencies. +4. **Load the configuration:** Use the `parsl.load()` function to load your chosen configuration. +5. **Run your script:** Execute a Parsl script like any other Python script. Parsl will then take care of executing your tasks in parallel, managing dependencies, and moving data as needed. + +.. _parsl_docs: https://parsl.readthedocs.io/en/stable/ + +For more details on using Parsl, check out the `Parsl documentation `_. + +Core Concepts +============= + +Parsl and Concurrency +--------------------- + +Parsl is designed to make parallel programming easier in Python. It allows you to break down your code into smaller tasks that can run concurrently, meaning they can be executed at the same time or in an overlapping manner. This is different from traditional Python code, which runs one line at a time in sequence. + +When you call a Parsl app (a function decorated with `@python_app` or `@bash_app`), Parsl creates a new task that runs independently of your main program. This means your main program can continue running while the task is being executed, potentially on a different processor or computer. + +Introduction to Futures ----------------------- -Parsl tasks often need to communicate with each other to perform useful work. Parsl provides two primary forms of communication: parameter passing and file passing. +To manage these concurrent tasks, Parsl uses **futures**. A future is a placeholder for the result of a task that hasn't finished yet. You can think of it like a meal ticket in a restaurant. You get the ticket immediately, but you have to wait for the meal to be prepared. Similarly, when you call a Parsl app, you get a future right away, but you have to wait for the task to complete before you can access the result. + +Understanding AppFutures and DataFutures +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- **AppFutures:** Represent the execution of a Parsl app. You can use an AppFuture to check the status of a task, wait for it to finish, and get the result or any exceptions that occurred. + +- **DataFutures:** Represent files produced by a Parsl app. They allow you to track the creation of output files and ensure that they are ready before being used as inputs to other tasks. -**Parameter Passing:** +Parsl and Execution +------------------- -Tasks exchange values directly, allowing the results of one task to be used as inputs for another. This method supports both simple primitive types and complex objects like Numpy Arrays or Pandas DataFrames. +Execution providers, executors, and launchers make Parsl's ability to run tasks on different resources possible. -**File Passing:** +Execution Providers, Executors, and Launchers +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -File passing is useful for exchanging large datasets or when data cannot be easily serialized into Python objects. Parsl supports file-based communication in both Bash and Python apps. For tasks running on remote nodes without shared file systems, Parsl uses a ``parsl.data_provider.files.File`` construct for location-independent file references. +- **Execution Providers:** These components connect Parsl to the computing resources you want to use, whether it's your local machine, a cluster, or a cloud platform. They handle the details of submitting jobs, checking their status, and canceling them if needed. -**Futures for Synchronization:** +- **Executors:** These components manage the execution of tasks on the resources provided by the execution provider. They decide when and where to run each task, taking into account factors like dependencies between tasks and the availability of resources. -Parameter and file passing also serve as synchronization mechanisms. When a Parsl app is called, it returns a "future" object that holds the app's result. The ``result()`` function blocks the main program until the future has a value, ensuring that dependent tasks do not proceed until their inputs are ready. +- **Launchers:** These components are responsible for starting the worker processes that actually execute the tasks. They work with the execution provider to ensure that the workers are launched on the correct resources and with the correct environment. -The Parsl Environment +Blocks and Elasticity --------------------- -Parsl enhances Python by modifying the environment in which code executes. The environment refers to the variables and modules (*memory environment*), file systems (*file system environment*), and services (*service environment*) accessible to a function. +Parsl uses **blocks** to represent groups of resources. A block can be a single computer, a group of nodes in a cluster, or a set of virtual machines in the cloud. Parsl can dynamically adjust the number of blocks it uses based on the workload, a feature called **elasticity**. This allows Parsl to use resources efficiently, scaling up when there are many tasks to run and scaling down when the workload is lighter. + +Parsl and Communication +------------------------ -**Memory Environment:** +Parsl tasks often need to exchange data to accomplish their work. Parsl provides two main mechanisms for communication between tasks: -In regular Python, functions have access to both local and global variables. In Parsl, tasks executed with the ``parsl.executors.HighThroughputExecutor`` (HTEX) operate in a distinct environment, accessing only local variables associated with the function. This contrasts with the ``parsl.executors.ThreadPoolExecutor``, where tasks share the memory environment with the main program. +- **Parameter Passing:** You can pass data directly between tasks as function arguments and return values. Parsl handles the serialization and deserialization of data, so you can pass complex objects like lists and dictionaries. -**File System Environment:** +- **File Passing:** You can also pass data between tasks using files. Parsl provides a `File` class that abstracts the location of files, making it easy to work with files stored on different systems. -The file system environment determines which files are accessible to a task. In a regular Python program, tasks have access to the entire file system. In Parsl, the file system environment depends on where the task is executed. Tasks on nodes with shared file systems can share files, while tasks on different nodes may need to transfer files explicitly. +Interactive Tutorial: Running Your First Parallel Task +------------------------------------------------------ -.. image:: ../images/overview/filesystem.png - :scale: 70 - :align: center +The Parsl documentation includes an interactive tutorial that guides you through writing and running a parallel task. -**Service Environment:** +Here are your options for completing the tutorial: -The service environment includes network services accessible to Parsl tasks, such as Redis servers or Globus data management services. These services are available to all tasks within the environment. +- **Binder:** For an online interactive experience without any installations, you can use Binder to run the tutorial in a Jupyter Notebook environment. Start the tutorial on Binder `here `_. -**Environment Summary:** +- **Online Notebooks:** If you'd rather try Parsl in a different online notebook setup, you can access it `here `_. -Tasks executed with the ``parsl.executors.ThreadPoolExecutor`` share the memory and file system environment with the main program. In contrast, tasks executed with other Parsl executors may have isolated environments, depending on the executor and node configuration. +Here are links to Parsl documentation that will help guide you through the tutorial: -+--------------------+--------------------+--------------------+---------------------------+------------------+ -| | Share memory | Share file system | Share file system | Share service | -| | environment with | environment with | environment with other | environment | -| | parent/other tasks | parent | tasks | with other tasks | -+====================+====================+====================+===========================+==================+ -+--------------------+--------------------+--------------------+---------------------------+------------------+ -| Python | Yes | Yes | N/A | N/A | -| without | | | | | -| Parsl | | | | | -+--------------------+--------------------+--------------------+---------------------------+------------------+ -| Parsl | Yes | Yes | Yes | N/A | -| ThreadPoolExecutor | | | | | -| | | | | | -+--------------------+--------------------+--------------------+---------------------------+------------------+ -| Other Parsl | No | If executed on the | If tasks are executed on | N/A | -| executors | | same node with | the same node or with | | -| | | file system access | access to the same file | | -| | | | system | | -+--------------------+--------------------+--------------------+---------------------------+------------------+ +- **Parsl Tutorial:** This provides a comprehensive guide on using Parsl with examples and explanations. You can access it `here `_. +- **Quickstart Guide:** This provides a quick introduction to Parsl and how to start the tutorial. You can access it `here `_. From dee0e9aff486dff1d978fb81a4a514eb4f528d29 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Wed, 28 Aug 2024 15:00:11 +0100 Subject: [PATCH 08/14] Update overview.rst Addressed conflict with the "here" references --- docs/userguide/overview.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/userguide/overview.rst b/docs/userguide/overview.rst index 2c603234ff..7e917fe376 100644 --- a/docs/userguide/overview.rst +++ b/docs/userguide/overview.rst @@ -415,10 +415,10 @@ Here are your options for completing the tutorial: - **Binder:** For an online interactive experience without any installations, you can use Binder to run the tutorial in a Jupyter Notebook environment. Start the tutorial on Binder `here `_. -- **Online Notebooks:** If you'd rather try Parsl in a different online notebook setup, you can access it `here `_. +- **Online Notebooks:** If you'd rather try Parsl in a different online notebook setup, you can access it here: `Online Notebooks link `_. Here are links to Parsl documentation that will help guide you through the tutorial: -- **Parsl Tutorial:** This provides a comprehensive guide on using Parsl with examples and explanations. You can access it `here `_. +- **Parsl Tutorial:** This provides a comprehensive guide on using Parsl with examples and explanations. You can access it here: `Parsl Tutorial link `_. -- **Quickstart Guide:** This provides a quick introduction to Parsl and how to start the tutorial. You can access it `here `_. +- **Quickstart Guide:** This provides a quick introduction to Parsl and how to start the tutorial. You can access it here: `Quickstart Guide link `_. From dfdaded916bc7be3b97d415600c2d821a8588c84 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Wed, 28 Aug 2024 15:04:37 +0100 Subject: [PATCH 09/14] Update overview.rst --- docs/userguide/overview.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide/overview.rst b/docs/userguide/overview.rst index 7e917fe376..73a87d86c3 100644 --- a/docs/userguide/overview.rst +++ b/docs/userguide/overview.rst @@ -413,7 +413,7 @@ The Parsl documentation includes an interactive tutorial that guides you through Here are your options for completing the tutorial: -- **Binder:** For an online interactive experience without any installations, you can use Binder to run the tutorial in a Jupyter Notebook environment. Start the tutorial on Binder `here `_. +- **Binder:** For an online interactive experience without any installations, you can use Binder to run the tutorial in a Jupyter Notebook environment. Start the tutorial on Binder `Binder link `_. - **Online Notebooks:** If you'd rather try Parsl in a different online notebook setup, you can access it here: `Online Notebooks link `_. From e5fee3fcb183ddb9f0ce8bf6223bbfb2b135d5ac Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Wed, 28 Aug 2024 15:46:19 +0100 Subject: [PATCH 10/14] Update overview.rst Corrected image directory --- docs/userguide/overview.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/userguide/overview.rst b/docs/userguide/overview.rst index 73a87d86c3..6242450e38 100644 --- a/docs/userguide/overview.rst +++ b/docs/userguide/overview.rst @@ -28,7 +28,7 @@ In Parsl, there's a distinction between a **script** and a **workflow**. Understanding the role of a Parsl script and a workflow is like understanding the difference between a recipe and the cooking process. A Parsl script can be thought of as a recipe, where the ingredients are the tasks and the steps are the dependencies. The workflow, on the other hand, is the process of cooking that recipe. It orchestrates the actual cooking process, ensuring that the steps are followed correctly and the ingredients are combined at the right time. -.. image:: images/ScriptvsWorkflow.png +.. image:: ../images/overview/ScriptvsWorkflow.png :alt: Script vs. Workflow :align: center @@ -63,7 +63,7 @@ Concurrency is a more general concept that can be achieved even on a single proc Parsl enables both concurrency and parallelism. It allows you to define tasks that can be executed concurrently and leverages parallel hardware to run those tasks simultaneously on different processors or computers. -.. image:: images/ParslManagesConcurrency.jpg +.. image:: ../images/overview/ParslManagesConcurrency.jpg :alt: Parsl Manages Concurrency :align: center @@ -265,7 +265,7 @@ Here's a simple example: These scripts define a task called `my_task` that doubles a number. Run the first and then the second (top to bottom). It then creates 10 instances of this task, each with a different input, and runs them in parallel. Finally, it prints the results as they become available. To check if this script worked, you should see the numbers 0 through 18 printed to your console, although not necessarily in order. -.. image:: images/BasicParslScriptFlow.jpg +.. image:: ../images/overview/BasicParslScriptFlow.jpg :alt: Basic Parsl Script Flow :align: center From 53b028c5c67081b8ec840e63279ff2671a6a3302 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Wed, 28 Aug 2024 16:33:11 +0100 Subject: [PATCH 11/14] Update overview.rst Replaced single backticks with double --- docs/userguide/overview.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide/overview.rst b/docs/userguide/overview.rst index 6242450e38..57e2ecd389 100644 --- a/docs/userguide/overview.rst +++ b/docs/userguide/overview.rst @@ -195,7 +195,7 @@ Common Errors Here are some common errors you might encounter during installation and how to fix them: -- **Dependency errors:** Parsl has several dependencies, such as `pyzmq`, `dill`, and `globus-sdk`. If you encounter errors related to these dependencies, try installing them manually using pip. For example: +- **Dependency errors:** Parsl has several dependencies, such as ``pyzmq``, ``dill``, and ``globus-sdk``. If you encounter errors related to these dependencies, try installing them manually using pip. For example: .. code-block:: bash From ef99eb231b90d4bad954ac46573b8b645a25f396 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Wed, 28 Aug 2024 17:08:00 +0100 Subject: [PATCH 12/14] Update overview.rst --- docs/userguide/overview.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide/overview.rst b/docs/userguide/overview.rst index 57e2ecd389..830294f31c 100644 --- a/docs/userguide/overview.rst +++ b/docs/userguide/overview.rst @@ -205,7 +205,7 @@ Here are some common errors you might encounter during installation and how to f - **ModuleNotFoundError: No module named 'parsl':** This means that Parsl is not installed. Make sure you have followed the installation instructions correctly. -- **Permission errors:** If you get permission errors during installation, try running the pip command with `sudo` (Linux/macOS) or as an administrator (Windows). +- **Permission errors:** If you get permission errors during installation, try running the pip command with ``sudo`` (Linux/macOS) or as an administrator (Windows). If you encounter other errors, please consult the Parsl documentation or seek help from the Parsl community in the `#parsl-help `_ channel on Slack. From fb4cdd5060d346dd756110bfe6d52ec1cea5b5e8 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Wed, 28 Aug 2024 17:56:26 +0100 Subject: [PATCH 13/14] Update overview.rst --- docs/userguide/overview.rst | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/userguide/overview.rst b/docs/userguide/overview.rst index 830294f31c..6141652bca 100644 --- a/docs/userguide/overview.rst +++ b/docs/userguide/overview.rst @@ -203,7 +203,7 @@ Here are some common errors you might encounter during installation and how to f - **ERROR: Could not find a version that satisfies the requirement parsl:** This means that pip cannot find a compatible version of Parsl for your Python version. Make sure you are using Python 3.8 or newer. -- **ModuleNotFoundError: No module named 'parsl':** This means that Parsl is not installed. Make sure you have followed the installation instructions correctly. +- **ModuleNotFoundError: No module named "parsl":** This means that Parsl is not installed. Make sure you have followed the installation instructions correctly. - **Permission errors:** If you get permission errors during installation, try running the pip command with ``sudo`` (Linux/macOS) or as an administrator (Windows). @@ -263,7 +263,7 @@ Here's a simple example: for result in results: print(result.result()) -These scripts define a task called `my_task` that doubles a number. Run the first and then the second (top to bottom). It then creates 10 instances of this task, each with a different input, and runs them in parallel. Finally, it prints the results as they become available. To check if this script worked, you should see the numbers 0 through 18 printed to your console, although not necessarily in order. +These scripts define a task called ``my_task`` that doubles a number. Run the first and then the second (top to bottom). It then creates 10 instances of this task, each with a different input, and runs them in parallel. Finally, it prints the results as they become available. To check if this script worked, you should see the numbers 0 through 18 printed to your console, although not necessarily in order. .. image:: ../images/overview/BasicParslScriptFlow.jpg :alt: Basic Parsl Script Flow @@ -274,11 +274,11 @@ Parsl Script Basic Workflow - **Import Parsl:** The script begins by importing the Parsl library, which provides the necessary tools and functions for parallel execution. - **Load Configuration:** A configuration object is loaded, specifying the resources (e.g., local threads, clusters, clouds) that Parsl will use to execute tasks. This step is crucial as it tailors Parsl's behavior to the specific computing environment. -- **Define Apps:** Python functions are decorated with special tags (`@python_app` or `@bash_app`) to indicate that they can be run in parallel as independent tasks. +- **Define Apps:** Python functions are decorated with special tags (``@python_app`` or ``@bash_app``) to indicate that they can be run in parallel as independent tasks. - **Call Apps:** The decorated functions (apps) are invoked, creating futures. Futures are placeholders for the results of these parallel tasks, allowing the script to continue without waiting for each task to finish. - **DataFlowKernel (DFK):** The DFK, the core of Parsl, takes over. It manages the execution of tasks, ensuring they run when their dependencies (e.g., input data) are ready and resources are available. - **Task Execution:** The DFK sends tasks to executors, which are responsible for running the tasks on the specified resources (e.g., different cores or nodes). -- **Get Results:** Once tasks are completed, the `.result()` method is used to retrieve the results from the futures. The script can then use these results for further processing or analysis. +- **Get Results:** Once tasks are completed, the ``.result()`` method is used to retrieve the results from the futures. The script can then use these results for further processing or analysis. - **End:** The script concludes after all tasks have been executed and their results have been retrieved. To run a Parsl script, you first need to load the configuration: @@ -308,7 +308,7 @@ Let's look at a simplified example: result = hello().result() print(result) # Output: Hello, Frodo! -This script defines a Parsl app called `hello` that takes a name and returns a greeting. It then runs the app with the input "Frodo" and prints the result. If this script worked, you should see "Hello, Frodo!" printed to your console. +This script defines a Parsl app called ``hello`` that takes a name and returns a greeting. It then runs the app with the input "Frodo" and prints the result. If this script worked, you should see "Hello, Frodo!" printed to your console. Getting Started Tutorial ======================== @@ -334,11 +334,11 @@ The best way to learn Parsl is by doing. Let's revisit the "Hello World" example This script demonstrates the core components of a Parsl program: -- **Importing Parsl:** The `import parsl` line brings in the Parsl library, giving you access to its functions and classes. -- **Loading Configuration:** The `parsl.load(config)` line initializes Parsl with your chosen configuration. This configuration specifies how Parsl will use your computing resources. In this example, we're using a simple configuration for running Parsl on your local machine. -- **Defining an App:** The `@python_app` decorator tells Parsl that the `hello` function is a Parsl app, meaning it can be run in parallel. -- **Calling the App:** The `hello("World")` line calls the app with the argument "World". This doesn't run the function immediately; instead, it returns a future, a placeholder for the result that will be available later. -- **Getting the Result:** The `.result()` method waits for the app to finish and then returns the result, which is the string "Hello, World!". +- **Importing Parsl:** The ``import parsl`` line brings in the Parsl library, giving you access to its functions and classes. +- **Loading Configuration:** The ``parsl.load(config)`` line initializes Parsl with your chosen configuration. This configuration specifies how Parsl will use your computing resources. In this example, we're using a simple configuration for running Parsl on your local machine. +- **Defining an App:** The ``@python_app`` decorator tells Parsl that the ``hello`` function is a Parsl app, meaning it can be run in parallel. +- **Calling the App:** The ``hello("World")`` line calls the app with the argument "World". This doesn't run the function immediately; instead, it returns a future, a placeholder for the result that will be available later. +- **Getting the Result:** The ``.result()`` method waits for the app to finish and then returns the result, which is the string "Hello, World!". - **Printing the Result:** The last line prints the result to the console. Practical Example: Setting Up Your First Parsl Workflow @@ -349,7 +349,7 @@ To set up your first Parsl workflow, you'll need to: 1. **Install Parsl:** Follow the instructions in the "Installation and Setup" section to install Parsl on your system. 2. **Choose a configuration:** Select a configuration that matches your computing environment. Parsl provides several example configurations for different platforms, such as laptops, clusters, and clouds. You can also create custom settings. 3. **Write a Parsl script:** Define the tasks you want to run in parallel and their dependencies. -4. **Load the configuration:** Use the `parsl.load()` function to load your chosen configuration. +4. **Load the configuration:** Use the ``parsl.load()`` function to load your chosen configuration. 5. **Run your script:** Execute a Parsl script like any other Python script. Parsl will then take care of executing your tasks in parallel, managing dependencies, and moving data as needed. .. _parsl_docs: https://parsl.readthedocs.io/en/stable/ @@ -364,7 +364,7 @@ Parsl and Concurrency Parsl is designed to make parallel programming easier in Python. It allows you to break down your code into smaller tasks that can run concurrently, meaning they can be executed at the same time or in an overlapping manner. This is different from traditional Python code, which runs one line at a time in sequence. -When you call a Parsl app (a function decorated with `@python_app` or `@bash_app`), Parsl creates a new task that runs independently of your main program. This means your main program can continue running while the task is being executed, potentially on a different processor or computer. +When you call a Parsl app (a function decorated with ``@python_app`` or ``@bash_app``), Parsl creates a new task that runs independently of your main program. This means your main program can continue running while the task is being executed, potentially on a different processor or computer. Introduction to Futures ----------------------- From c6c674ca18ce5be0136a27fca384e366588c611b Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Wed, 28 Aug 2024 21:44:54 +0100 Subject: [PATCH 14/14] Update overview.rst Separated shell command from Python code block --- docs/userguide/overview.rst | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/userguide/overview.rst b/docs/userguide/overview.rst index 6141652bca..5d33c730a7 100644 --- a/docs/userguide/overview.rst +++ b/docs/userguide/overview.rst @@ -237,9 +237,12 @@ A Parsl script is a Python script that defines the tasks you want to run in para Here's a simple example: -.. code-block:: python +.. code-block:: bash !pip install parsl + +.. code-block:: python + import parsl from parsl.config import Config from parsl.executors import HighThroughputExecutor @@ -256,7 +259,7 @@ Here's a simple example: return x * 2 results = [] - for i in range(10): + for i in range 10: results.append(my_task(i)) # Indent the following block to be part of the 'for' loop