From a00fa541328d043096f9db24feec9eab92eaf99e Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Tue, 13 Aug 2024 15:02:47 +0100 Subject: [PATCH 01/19] Glossary --- docs/userguide/glossary.rst | 218 ++++++++++++++++++++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 docs/userguide/glossary.rst diff --git a/docs/userguide/glossary.rst b/docs/userguide/glossary.rst new file mode 100644 index 0000000000..7646f74e13 --- /dev/null +++ b/docs/userguide/glossary.rst @@ -0,0 +1,218 @@ +Glossary of Parsl Terms +======================= + +This glossary defines terms based on their usage within Parsl. By defining our terminology, we hope to create understanding across our community and reduce confusion. When asking for or providing support to fellow Parsl users, please use these terms as defined. + +Our glossary is organized alphabetically by the English alphabet. Feel free to contribute terms and definitions to this list that will benefit Parsl users. + +.. _glossary: + +.. _app: + +**App:** +---------- + +In Parsl, an app is like a small, self-contained program that does a specific job. It's a piece of code, like a Python function or a Bash script, that you can run separately from your main program. Think of it as a mini-tool within your larger toolbox. + +.. _appfuture: + +**AppFuture:** +----------------- + +An AppFuture is like a placeholder for the result of an app that's running in the background. It's like a ticket you get when you order food at a restaurant – you get the ticket right away, but you have to wait for the food to be ready. Similarly, you get an AppFuture immediately when you start an app, but you have to wait for the app to finish before you can see the results. + +.. _bashapp: + +**Bash App:** +--------------- + +A Bash app is a special kind of app in Parsl that lets you run commands from your computer's terminal (like the ones you type in the command prompt or shell). It's a way to use Parsl to automate tasks that you would normally do manually in the terminal. + +.. _block: + +**Block:** +------------ + +A block is like a group of computers loaned to you for doing work. Parsl will manage passing out work to each of them to do. This way, you can get your work done faster by using multiple computers at the same time. + +.. _checkpointing: + +**Checkpointing:** +--------------------- + +Checkpointing is like saving your progress in a video game. If something goes wrong, you can restart from the last saved point instead of starting all over again. In Parsl, checkpointing lets you save the state of your work so that you can resume it later if there's an interruption. + +.. _concurrency: + +**Concurrency:** +------------------- + +Concurrency means doing multiple things at the same time. In Parsl, it means that your apps can run simultaneously, even if they're not on the same computer. This can make your programs run much faster. + +.. _configuration: + +**Configuration:** +--------------------- + +Configuration is like setting up the rules for how Parsl should work. It's like adjusting the settings on your phone – you can choose how you want things to look and behave. In Parsl, you can configure things like how many computers to use, where to store data, and how to handle errors. + +.. _datafuture: + +**DataFuture:** +------------------ + +A DataFuture is like a placeholder for a file that an app is creating. It's like a receipt for a package you're expecting – you get the receipt right away, but you have to wait for the package to arrive. Similarly, you get a DataFuture immediately when an app starts creating a file, but you have to wait for the file to be finished before you can use it. + +.. _dfk: + +**DataFlowKernel (DFK):** +------------------------------ + +The DataFlowKernel is like the brain of Parsl. It's the part that controls how your apps run and how they share information. It's like the conductor of an orchestra, making sure that all the musicians play together in harmony. + +.. _elasticity: + +**Elasticity:** +----------------- + +Elasticity means being able to stretch or shrink. In Parsl, it means that you can easily add or remove blocks of computers as needed. This is useful if your workload changes – you can use more computers when you have a lot of work to do and fewer computers when you don't. + +.. _executionprovider: + +**Execution Provider:** +-------------------------- + +An execution provider is like a bridge between Parsl and the computers you want to use. It's the part that knows how to talk to different types of computers, like your laptop, a cluster, or a cloud service. + +.. _executor: + +**Executor:** +---------------- + +An executor is like a manager for your apps. It's the part that decides which app should run on which computer and when. It's like a traffic controller, directing the flow of apps to make sure they all get where they need to go. + +.. _future: + +**Future:** +------------- + +A future is a placeholder for the result of a task that hasn't finished yet. Both AppFuture and DataFuture are types of Futures. You can use the `.result()` method to get the actual result when it's ready. + +.. _job: + +**Job:** +--------- + +A job in Parsl refers to a unit of work that is submitted to an execution environment (like a cluster or cloud) for processing. It's like a task that needs to be done, such as running a script or processing data, and it can consist of one or more tasks that are executed on a compute resource. + +.. _launcher: + +**Launcher:** +---------------- + +A launcher is like a starter for your apps. It's the part that actually starts the apps running on the computers. It's like a coach telling the athletes when to start running. + +.. _manager: + +**Manager:** +-------------- + +A manager in Parsl is responsible for overseeing the execution of tasks on specific compute resources. It's like a supervisor who ensures that all workers (or workers within a block) are carrying out their tasks correctly and efficiently. + +.. _memoization: + +**Memoization:** +------------------- + +Memoization is like remembering something so you don't have to do it again. In Parsl, it means that if you run an app with the same inputs multiple times, Parsl will remember the result from the first time and give it to you again instead of running the app again. This can save a lot of time. + +.. _mpiapp: + +**MPI App:** +--------------- + +An MPI app is a special kind of app that uses a technology called Message Passing Interface (MPI) to communicate between different computers. It's like a walkie-talkie that lets different apps talk to each other. + +.. _node: + +**Node:** +------------ + +A node in Parsl is like a workstation in a factory. It's the physical or virtual machine where work gets done. Each node provides the computational power needed to run tasks, and it can host several workers who carry out the tasks. + +.. _parallelism: + +**Parallelism:** +------------------- + +Parallelism means doing multiple things at the same time. In Parsl, it means that your apps can run simultaneously on different computers. This can make your programs run much faster. + +.. _parslscript: + +**Parsl Script:** +--------------------- + +A Parsl script is a file that contains the instructions for how to run your apps in parallel. It's like a recipe that tells you what ingredients to use and how to combine them. + +.. _plugin: + +**Plugin:** +--------------- + +A plugin is like an add-on for Parsl. It's a piece of code that you can add to Parsl to give it new features or change how it works. It's like an extra tool that you can add to your toolbox. + +.. _pythonapp: + +**Python App:** +------------------ + +A Python app is a special kind of app in Parsl that's written in the Python programming language. It's a way to use Parsl to run your Python code in parallel. + +.. _resource: + +**Resource:** +--------------- + +A resource in Parsl refers to any computational asset that can be used to execute tasks, such as CPU cores, memory, or entire nodes. It's like the tools and materials you need to get a job done. + +.. _serialization: + +**Serialization:** +-------------------- + +Serialization is like packing your belongings into a suitcase so you can take them on a trip. In Parsl, it means converting your data into a format that can be sent over a network to another computer. + +.. _staging: + +**Staging:** +--------------- + +Staging is like setting the stage for a play. In Parsl, it means preparing the data that your apps need before they start running. This can involve things like copying files to the right location or converting them into the right format. + +.. _task: + +**Task:** +------------ + +A task in Parsl is the smallest unit of work that can be executed. It's like a single step in a larger process, where each task is part of a broader workflow or job. + +.. _thread: + +**Thread:** +------------- + +A thread is like a smaller part of a program that can run independently. It's like a worker in a factory who can do their job at the same time as other workers. + +.. _worker: + +**Worker:** +------------- + +A worker in Parsl is like an employee in the factory who does the actual work. Workers run on nodes and are responsible for executing the tasks assigned to them. Multiple workers can work on a single node, sharing the node’s resources to get the job done efficiently. + +.. _workflow: + +**Workflow:** +---------------- + +A workflow is like a series of steps that you follow to complete a task. In Parsl, it's a way to describe how your apps should run and how they depend on each other. It's like a flowchart that shows you the order in which things need to happen. From 0bf1dcf255f623fa27254cc752f3c0e708376fad Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Tue, 13 Aug 2024 15:14:00 +0100 Subject: [PATCH 02/19] Update index.rst --- docs/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/index.rst b/docs/index.rst index 65696ec048..c5057c0899 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -107,6 +107,7 @@ Table of Contents quickstart 1-parsl-introduction.ipynb userguide/index + userguide/glossary faq reference devguide/index From c593275f05fac44e0519a76a5e6c95a2e534dcd2 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Tue, 13 Aug 2024 15:14:51 +0100 Subject: [PATCH 03/19] Update index.rst --- docs/userguide/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/userguide/index.rst b/docs/userguide/index.rst index 12254cd6e2..2a97a6104e 100644 --- a/docs/userguide/index.rst +++ b/docs/userguide/index.rst @@ -21,3 +21,4 @@ User guide usage_tracking plugins parsl_perf + glossary From d05bc89ec89589b254137f7332b04393f6178f0a Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Tue, 13 Aug 2024 16:03:08 +0100 Subject: [PATCH 04/19] Update glossary.rst Revised definition of Launcher based on feedback --- docs/userguide/glossary.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide/glossary.rst b/docs/userguide/glossary.rst index 7646f74e13..82b6a25967 100644 --- a/docs/userguide/glossary.rst +++ b/docs/userguide/glossary.rst @@ -110,7 +110,7 @@ A job in Parsl refers to a unit of work that is submitted to an execution enviro **Launcher:** ---------------- -A launcher is like a starter for your apps. It's the part that actually starts the apps running on the computers. It's like a coach telling the athletes when to start running. +A launcher in Parsl is responsible for placing the workers onto each computer, preparing them to run the apps. It’s like a bus driver who brings the players to the stadium, ensuring they are ready to start, but not directly involved in telling them what to do once they arrive. .. _manager: From 58c563df005558771ae0d37948683fd752289174 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Wed, 14 Aug 2024 08:41:56 +0100 Subject: [PATCH 05/19] Update glossary.rst Changed the reference label for the DataFuture entry --- docs/userguide/glossary.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide/glossary.rst b/docs/userguide/glossary.rst index 82b6a25967..5098ca8ff7 100644 --- a/docs/userguide/glossary.rst +++ b/docs/userguide/glossary.rst @@ -56,7 +56,7 @@ Concurrency means doing multiple things at the same time. In Parsl, it means tha Configuration is like setting up the rules for how Parsl should work. It's like adjusting the settings on your phone – you can choose how you want things to look and behave. In Parsl, you can configure things like how many computers to use, where to store data, and how to handle errors. -.. _datafuture: +.. _datafutureglossary: **DataFuture:** ------------------ From 762a478ed0cc0d184fc3e81ef464d8ee7bcb5e0a Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Wed, 14 Aug 2024 11:55:12 +0100 Subject: [PATCH 06/19] Update glossary.rst Changed the labels for the other entries for uniformity --- docs/userguide/glossary.rst | 58 ++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/docs/userguide/glossary.rst b/docs/userguide/glossary.rst index 5098ca8ff7..a79d5a68b2 100644 --- a/docs/userguide/glossary.rst +++ b/docs/userguide/glossary.rst @@ -7,49 +7,49 @@ Our glossary is organized alphabetically by the English alphabet. Feel free to c .. _glossary: -.. _app: +.. _appglossary: **App:** ---------- In Parsl, an app is like a small, self-contained program that does a specific job. It's a piece of code, like a Python function or a Bash script, that you can run separately from your main program. Think of it as a mini-tool within your larger toolbox. -.. _appfuture: +.. _appfutureglossary: **AppFuture:** ----------------- An AppFuture is like a placeholder for the result of an app that's running in the background. It's like a ticket you get when you order food at a restaurant – you get the ticket right away, but you have to wait for the food to be ready. Similarly, you get an AppFuture immediately when you start an app, but you have to wait for the app to finish before you can see the results. -.. _bashapp: +.. _bashappglossary: **Bash App:** --------------- A Bash app is a special kind of app in Parsl that lets you run commands from your computer's terminal (like the ones you type in the command prompt or shell). It's a way to use Parsl to automate tasks that you would normally do manually in the terminal. -.. _block: +.. _blockglossary: **Block:** ------------ A block is like a group of computers loaned to you for doing work. Parsl will manage passing out work to each of them to do. This way, you can get your work done faster by using multiple computers at the same time. -.. _checkpointing: +.. _checkpointingglossary: **Checkpointing:** --------------------- Checkpointing is like saving your progress in a video game. If something goes wrong, you can restart from the last saved point instead of starting all over again. In Parsl, checkpointing lets you save the state of your work so that you can resume it later if there's an interruption. -.. _concurrency: +.. _concurrencyglossary: **Concurrency:** ------------------- Concurrency means doing multiple things at the same time. In Parsl, it means that your apps can run simultaneously, even if they're not on the same computer. This can make your programs run much faster. -.. _configuration: +.. _configurationglossary: **Configuration:** --------------------- @@ -63,154 +63,154 @@ Configuration is like setting up the rules for how Parsl should work. It's like A DataFuture is like a placeholder for a file that an app is creating. It's like a receipt for a package you're expecting – you get the receipt right away, but you have to wait for the package to arrive. Similarly, you get a DataFuture immediately when an app starts creating a file, but you have to wait for the file to be finished before you can use it. -.. _dfk: +.. _dfkglossary: **DataFlowKernel (DFK):** ------------------------------ The DataFlowKernel is like the brain of Parsl. It's the part that controls how your apps run and how they share information. It's like the conductor of an orchestra, making sure that all the musicians play together in harmony. -.. _elasticity: +.. _elasticityglossary: **Elasticity:** ----------------- Elasticity means being able to stretch or shrink. In Parsl, it means that you can easily add or remove blocks of computers as needed. This is useful if your workload changes – you can use more computers when you have a lot of work to do and fewer computers when you don't. -.. _executionprovider: +.. _executionproviderglossary: **Execution Provider:** -------------------------- An execution provider is like a bridge between Parsl and the computers you want to use. It's the part that knows how to talk to different types of computers, like your laptop, a cluster, or a cloud service. -.. _executor: +.. _executorglossary: **Executor:** ---------------- An executor is like a manager for your apps. It's the part that decides which app should run on which computer and when. It's like a traffic controller, directing the flow of apps to make sure they all get where they need to go. -.. _future: +.. _futureglossary: **Future:** ------------- A future is a placeholder for the result of a task that hasn't finished yet. Both AppFuture and DataFuture are types of Futures. You can use the `.result()` method to get the actual result when it's ready. -.. _job: +.. _jobglossary: **Job:** --------- A job in Parsl refers to a unit of work that is submitted to an execution environment (like a cluster or cloud) for processing. It's like a task that needs to be done, such as running a script or processing data, and it can consist of one or more tasks that are executed on a compute resource. -.. _launcher: +.. _launcherglossary: **Launcher:** ---------------- A launcher in Parsl is responsible for placing the workers onto each computer, preparing them to run the apps. It’s like a bus driver who brings the players to the stadium, ensuring they are ready to start, but not directly involved in telling them what to do once they arrive. -.. _manager: +.. _managerglossary: **Manager:** -------------- A manager in Parsl is responsible for overseeing the execution of tasks on specific compute resources. It's like a supervisor who ensures that all workers (or workers within a block) are carrying out their tasks correctly and efficiently. -.. _memoization: +.. _memoizationglossary: **Memoization:** ------------------- Memoization is like remembering something so you don't have to do it again. In Parsl, it means that if you run an app with the same inputs multiple times, Parsl will remember the result from the first time and give it to you again instead of running the app again. This can save a lot of time. -.. _mpiapp: +.. _mpiappglossary: **MPI App:** --------------- An MPI app is a special kind of app that uses a technology called Message Passing Interface (MPI) to communicate between different computers. It's like a walkie-talkie that lets different apps talk to each other. -.. _node: +.. _nodeglossary: **Node:** ------------ A node in Parsl is like a workstation in a factory. It's the physical or virtual machine where work gets done. Each node provides the computational power needed to run tasks, and it can host several workers who carry out the tasks. -.. _parallelism: +.. _parallelismglossary: **Parallelism:** ------------------- Parallelism means doing multiple things at the same time. In Parsl, it means that your apps can run simultaneously on different computers. This can make your programs run much faster. -.. _parslscript: +.. _parslscriptglossary: **Parsl Script:** --------------------- A Parsl script is a file that contains the instructions for how to run your apps in parallel. It's like a recipe that tells you what ingredients to use and how to combine them. -.. _plugin: +.. _pluginglossary: **Plugin:** --------------- A plugin is like an add-on for Parsl. It's a piece of code that you can add to Parsl to give it new features or change how it works. It's like an extra tool that you can add to your toolbox. -.. _pythonapp: +.. _pythonappglossary: **Python App:** ------------------ A Python app is a special kind of app in Parsl that's written in the Python programming language. It's a way to use Parsl to run your Python code in parallel. -.. _resource: +.. _resourceglossary: **Resource:** --------------- A resource in Parsl refers to any computational asset that can be used to execute tasks, such as CPU cores, memory, or entire nodes. It's like the tools and materials you need to get a job done. -.. _serialization: +.. _serializationglossary: **Serialization:** -------------------- Serialization is like packing your belongings into a suitcase so you can take them on a trip. In Parsl, it means converting your data into a format that can be sent over a network to another computer. -.. _staging: +.. _stagingglossary: **Staging:** --------------- Staging is like setting the stage for a play. In Parsl, it means preparing the data that your apps need before they start running. This can involve things like copying files to the right location or converting them into the right format. -.. _task: +.. _taskglossary: **Task:** ------------ A task in Parsl is the smallest unit of work that can be executed. It's like a single step in a larger process, where each task is part of a broader workflow or job. -.. _thread: +.. _threadglossary: **Thread:** ------------- A thread is like a smaller part of a program that can run independently. It's like a worker in a factory who can do their job at the same time as other workers. -.. _worker: +.. _workerglossary: **Worker:** ------------- A worker in Parsl is like an employee in the factory who does the actual work. Workers run on nodes and are responsible for executing the tasks assigned to them. Multiple workers can work on a single node, sharing the node’s resources to get the job done efficiently. -.. _workflow: +.. _workflowglossary: **Workflow:** ---------------- From 4110b714be1473523e3b46531a7a749f1ed1c3af Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Thu, 15 Aug 2024 11:42:29 +0100 Subject: [PATCH 07/19] Update glossary.rst .result() method in the Future definition has been changed to double backticks (``.result()``), which should render it as inline code --- docs/userguide/glossary.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide/glossary.rst b/docs/userguide/glossary.rst index a79d5a68b2..38f40b0835 100644 --- a/docs/userguide/glossary.rst +++ b/docs/userguide/glossary.rst @@ -96,7 +96,7 @@ An executor is like a manager for your apps. It's the part that decides which ap **Future:** ------------- -A future is a placeholder for the result of a task that hasn't finished yet. Both AppFuture and DataFuture are types of Futures. You can use the `.result()` method to get the actual result when it's ready. +A future is a placeholder for the result of a task that hasn't finished yet. Both AppFuture and DataFuture are types of Futures. You can use the ``.result()`` method to get the actual result when it's ready. .. _jobglossary: From 221934763ff22677aca166d3d3535bc0cf4babe3 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Fri, 16 Aug 2024 15:52:06 +0100 Subject: [PATCH 08/19] Update docs/userguide/glossary.rst Co-authored-by: Daniel S. Katz --- docs/userguide/glossary.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide/glossary.rst b/docs/userguide/glossary.rst index 38f40b0835..563712ceca 100644 --- a/docs/userguide/glossary.rst +++ b/docs/userguide/glossary.rst @@ -3,7 +3,7 @@ Glossary of Parsl Terms This glossary defines terms based on their usage within Parsl. By defining our terminology, we hope to create understanding across our community and reduce confusion. When asking for or providing support to fellow Parsl users, please use these terms as defined. -Our glossary is organized alphabetically by the English alphabet. Feel free to contribute terms and definitions to this list that will benefit Parsl users. +Our glossary is organized alphabetically in English. Feel free to contribute terms and definitions to this list that will benefit Parsl users. .. _glossary: From 5796f2d730db0b41a8a14b9e906aaa2dec82ae45 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Fri, 16 Aug 2024 15:59:40 +0100 Subject: [PATCH 09/19] Update docs/userguide/glossary.rst Co-authored-by: Daniel S. Katz --- docs/userguide/glossary.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide/glossary.rst b/docs/userguide/glossary.rst index 563712ceca..7703b11c07 100644 --- a/docs/userguide/glossary.rst +++ b/docs/userguide/glossary.rst @@ -12,7 +12,7 @@ Our glossary is organized alphabetically in English. Feel free to contribute ter **App:** ---------- -In Parsl, an app is like a small, self-contained program that does a specific job. It's a piece of code, like a Python function or a Bash script, that you can run separately from your main program. Think of it as a mini-tool within your larger toolbox. +In Parsl, an app is a small, self-contained program that does a specific job. It's a piece of code, such as a Python function or a Bash script, that can run separately from your main program. Think of it as a mini-tool within your larger toolbox. .. _appfutureglossary: From bee42d9973c298981f1982d1ba6072c788d8f395 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Fri, 16 Aug 2024 16:00:05 +0100 Subject: [PATCH 10/19] Update docs/userguide/glossary.rst Co-authored-by: Daniel S. Katz --- docs/userguide/glossary.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide/glossary.rst b/docs/userguide/glossary.rst index 7703b11c07..91b533e9b9 100644 --- a/docs/userguide/glossary.rst +++ b/docs/userguide/glossary.rst @@ -19,7 +19,7 @@ In Parsl, an app is a small, self-contained program that does a specific job. It **AppFuture:** ----------------- -An AppFuture is like a placeholder for the result of an app that's running in the background. It's like a ticket you get when you order food at a restaurant – you get the ticket right away, but you have to wait for the food to be ready. Similarly, you get an AppFuture immediately when you start an app, but you have to wait for the app to finish before you can see the results. +An AppFuture is a placeholder for the result of an app that runs in the background. It's like a ticket you get when you order food at a restaurant – you get the ticket right away, but you have to wait for the food to be ready. Similarly, you get an AppFuture immediately when you start an app, but you have to wait for the app to finish before you can see the results. .. _bashappglossary: From c1f24dcd32c177af1b2db3a088b935cb68c03105 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Fri, 16 Aug 2024 16:00:45 +0100 Subject: [PATCH 11/19] Update docs/userguide/glossary.rst Co-authored-by: Daniel S. Katz --- docs/userguide/glossary.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide/glossary.rst b/docs/userguide/glossary.rst index 91b533e9b9..6deb4605ef 100644 --- a/docs/userguide/glossary.rst +++ b/docs/userguide/glossary.rst @@ -40,7 +40,7 @@ A block is like a group of computers loaned to you for doing work. Parsl will ma **Checkpointing:** --------------------- -Checkpointing is like saving your progress in a video game. If something goes wrong, you can restart from the last saved point instead of starting all over again. In Parsl, checkpointing lets you save the state of your work so that you can resume it later if there's an interruption. +Checkpointing is like saving your progress in a video game. If something goes wrong, you can restart from the last saved point (checkpoint) instead of starting all over again. In Parsl, checkpointing lets you save the state of your work so that you can resume it later if there's an interruption. .. _concurrencyglossary: From 8c5d70a80837ffcc194dcbdb4ec759c4457e54a7 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Fri, 16 Aug 2024 16:01:04 +0100 Subject: [PATCH 12/19] Update docs/userguide/glossary.rst Co-authored-by: Daniel S. Katz --- docs/userguide/glossary.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide/glossary.rst b/docs/userguide/glossary.rst index 6deb4605ef..bf85e9e2c8 100644 --- a/docs/userguide/glossary.rst +++ b/docs/userguide/glossary.rst @@ -54,7 +54,7 @@ Concurrency means doing multiple things at the same time. In Parsl, it means tha **Configuration:** --------------------- -Configuration is like setting up the rules for how Parsl should work. It's like adjusting the settings on your phone – you can choose how you want things to look and behave. In Parsl, you can configure things like how many computers to use, where to store data, and how to handle errors. +Configuration sets up the rules for how Parsl should work. It's like adjusting the settings on your phone – you can choose how you want things to look and behave. In Parsl, you can configure things like how many computers to use, where to store data, and how to handle errors. .. _datafutureglossary: From 5b8132c2dcd9a843ceaeadcba851275eb70e4829 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Fri, 16 Aug 2024 16:02:36 +0100 Subject: [PATCH 13/19] Update docs/userguide/glossary.rst Co-authored-by: Daniel S. Katz --- docs/userguide/glossary.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide/glossary.rst b/docs/userguide/glossary.rst index bf85e9e2c8..671b69e522 100644 --- a/docs/userguide/glossary.rst +++ b/docs/userguide/glossary.rst @@ -61,7 +61,7 @@ Configuration sets up the rules for how Parsl should work. It's like adjusting t **DataFuture:** ------------------ -A DataFuture is like a placeholder for a file that an app is creating. It's like a receipt for a package you're expecting – you get the receipt right away, but you have to wait for the package to arrive. Similarly, you get a DataFuture immediately when an app starts creating a file, but you have to wait for the file to be finished before you can use it. +A DataFuture is a placeholder for a file that an app is creating. It's like a receipt for a package you're expecting – you get the receipt right away, but you have to wait for the package to arrive. Similarly, you get a DataFuture immediately when an app starts creating a file, but you have to wait for the file to be finished before you can use it. .. _dfkglossary: From f9e7757b21802c87a13628b773429add21fc40ca Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Fri, 16 Aug 2024 16:03:19 +0100 Subject: [PATCH 14/19] Update docs/userguide/glossary.rst Co-authored-by: Daniel S. Katz --- docs/userguide/glossary.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide/glossary.rst b/docs/userguide/glossary.rst index 671b69e522..5a2d3f0e3c 100644 --- a/docs/userguide/glossary.rst +++ b/docs/userguide/glossary.rst @@ -124,7 +124,7 @@ A manager in Parsl is responsible for overseeing the execution of tasks on speci **Memoization:** ------------------- -Memoization is like remembering something so you don't have to do it again. In Parsl, it means that if you run an app with the same inputs multiple times, Parsl will remember the result from the first time and give it to you again instead of running the app again. This can save a lot of time. +Memoization is like remembering something so you don't have to do it again. In Parsl, if you are using memoization and you run an app with the same inputs multiple times, Parsl will remember the result from the first time and give it to you again instead of running the app again. This can save a lot of time. .. _mpiappglossary: From 17ce740cfb6385e4c54dea64d3a94491e04df185 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Fri, 16 Aug 2024 16:03:38 +0100 Subject: [PATCH 15/19] Update docs/userguide/glossary.rst Co-authored-by: Daniel S. Katz --- docs/userguide/glossary.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide/glossary.rst b/docs/userguide/glossary.rst index 5a2d3f0e3c..c0ccaa6d7d 100644 --- a/docs/userguide/glossary.rst +++ b/docs/userguide/glossary.rst @@ -159,7 +159,7 @@ A Parsl script is a file that contains the instructions for how to run your apps **Plugin:** --------------- -A plugin is like an add-on for Parsl. It's a piece of code that you can add to Parsl to give it new features or change how it works. It's like an extra tool that you can add to your toolbox. +A plugin is an add-on for Parsl. It's a piece of code that you can add to Parsl to give it new features or change how it works. It's like an extra tool that you can add to your toolbox. .. _pythonappglossary: From 358417206c5f7d7e8cfd3ac6071c986268b89346 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Fri, 16 Aug 2024 16:03:59 +0100 Subject: [PATCH 16/19] Update docs/userguide/glossary.rst Co-authored-by: Daniel S. Katz --- docs/userguide/glossary.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide/glossary.rst b/docs/userguide/glossary.rst index c0ccaa6d7d..7060cb1669 100644 --- a/docs/userguide/glossary.rst +++ b/docs/userguide/glossary.rst @@ -166,7 +166,7 @@ A plugin is an add-on for Parsl. It's a piece of code that you can add to Parsl **Python App:** ------------------ -A Python app is a special kind of app in Parsl that's written in the Python programming language. It's a way to use Parsl to run your Python code in parallel. +A Python app is a special kind of app in Parsl that's written as a Python function. It's a way to use Parsl to run your Python code in parallel. .. _resourceglossary: From fbc0a029655ba40add0861aadc781c9536e9f3b8 Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Fri, 16 Aug 2024 21:05:03 +0100 Subject: [PATCH 17/19] Update glossary.rst Revised glossary definitions to improve clarity and accuracy based on feedback. Updated terms to use more precise language, particularly around the concepts of nodes, resources, and parallelism. Clarified the relationship between tasks, apps, and workflows. --- docs/userguide/glossary.rst | 44 ++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/docs/userguide/glossary.rst b/docs/userguide/glossary.rst index 7060cb1669..b5d537447a 100644 --- a/docs/userguide/glossary.rst +++ b/docs/userguide/glossary.rst @@ -33,28 +33,28 @@ A Bash app is a special kind of app in Parsl that lets you run commands from you **Block:** ------------ -A block is like a group of computers loaned to you for doing work. Parsl will manage passing out work to each of them to do. This way, you can get your work done faster by using multiple computers at the same time. +A block is a group of resources, such as nodes or computational units, allocated for executing tasks. Parsl manages the distribution of work across these resources to expedite task completion. .. _checkpointingglossary: **Checkpointing:** --------------------- -Checkpointing is like saving your progress in a video game. If something goes wrong, you can restart from the last saved point (checkpoint) instead of starting all over again. In Parsl, checkpointing lets you save the state of your work so that you can resume it later if there's an interruption. +Checkpointing is like saving your progress in a video game. If something goes wrong, you can restart from the last saved point instead of starting over. In Parsl, checkpointing saves the state of your work so you can resume it later if interrupted. .. _concurrencyglossary: **Concurrency:** ------------------- -Concurrency means doing multiple things at the same time. In Parsl, it means that your apps can run simultaneously, even if they're not on the same computer. This can make your programs run much faster. +Concurrency means doing multiple things at the same time. In Parsl, it enables your apps to run in parallel across different resources, significantly speeding up program execution. .. _configurationglossary: **Configuration:** --------------------- -Configuration sets up the rules for how Parsl should work. It's like adjusting the settings on your phone – you can choose how you want things to look and behave. In Parsl, you can configure things like how many computers to use, where to store data, and how to handle errors. +Configuration sets up the rules for how Parsl should work. It's like adjusting the settings on your phone – you can choose how you want things to look and behave. In Parsl, you can configure things like how many resources to use, where to store data, and how to handle errors. .. _datafutureglossary: @@ -75,21 +75,21 @@ The DataFlowKernel is like the brain of Parsl. It's the part that controls how y **Elasticity:** ----------------- -Elasticity means being able to stretch or shrink. In Parsl, it means that you can easily add or remove blocks of computers as needed. This is useful if your workload changes – you can use more computers when you have a lot of work to do and fewer computers when you don't. +Elasticity refers to the ability to scale resources up or down as needed. In Parsl, it allows you to add or remove blocks of computational resources based on workload demands. .. _executionproviderglossary: **Execution Provider:** -------------------------- -An execution provider is like a bridge between Parsl and the computers you want to use. It's the part that knows how to talk to different types of computers, like your laptop, a cluster, or a cloud service. +An execution provider acts as a bridge between Parsl and the resources you want to use, such as your laptop, a cluster, or a cloud service. It handles communication with these resources to execute tasks. .. _executorglossary: **Executor:** ---------------- -An executor is like a manager for your apps. It's the part that decides which app should run on which computer and when. It's like a traffic controller, directing the flow of apps to make sure they all get where they need to go. +An executor is a manager that determines which app runs on which resource and when. It directs the flow of apps to ensure efficient task execution. It's like a traffic controller, directing the flow of apps to make sure they all get where they need to go. .. _futureglossary: @@ -103,7 +103,7 @@ A future is a placeholder for the result of a task that hasn't finished yet. Bot **Job:** --------- -A job in Parsl refers to a unit of work that is submitted to an execution environment (like a cluster or cloud) for processing. It's like a task that needs to be done, such as running a script or processing data, and it can consist of one or more tasks that are executed on a compute resource. +A job in Parsl is a unit of work submitted to an execution environment (such as a cluster or cloud) for processing. It can consist of one or more apps executed on computational resources. .. _launcherglossary: @@ -131,28 +131,28 @@ Memoization is like remembering something so you don't have to do it again. In P **MPI App:** --------------- -An MPI app is a special kind of app that uses a technology called Message Passing Interface (MPI) to communicate between different computers. It's like a walkie-talkie that lets different apps talk to each other. +An MPI app is a specialized app that uses the Message Passing Interface (MPI) for communication between different nodes within the app. It enables different parts of the app to communicate and work together effectively. It's like a walkie-talkie that lets different parts of an app talk to each other. .. _nodeglossary: **Node:** ------------ -A node in Parsl is like a workstation in a factory. It's the physical or virtual machine where work gets done. Each node provides the computational power needed to run tasks, and it can host several workers who carry out the tasks. +A node in Parsl is like a workstation in a factory. It's a physical or virtual machine that provides the computational power needed to run tasks. Each node can host several workers that execute tasks. .. _parallelismglossary: **Parallelism:** ------------------- -Parallelism means doing multiple things at the same time. In Parsl, it means that your apps can run simultaneously on different computers. This can make your programs run much faster. +Parallelism means doing multiple things at the same time but not necessarily in the same location or using the same resources. In Parsl, it involves running apps simultaneously across different nodes or computational resources, accelerating program execution. .. _parslscriptglossary: **Parsl Script:** --------------------- -A Parsl script is a file that contains the instructions for how to run your apps in parallel. It's like a recipe that tells you what ingredients to use and how to combine them. +A Parsl script is a Python program that uses the Parsl library to define and run apps in parallel. It's like a recipe that tells you what ingredients to use and how to combine them. .. _pluginglossary: @@ -161,6 +161,13 @@ A Parsl script is a file that contains the instructions for how to run your apps A plugin is an add-on for Parsl. It's a piece of code that you can add to Parsl to give it new features or change how it works. It's like an extra tool that you can add to your toolbox. +.. _processglossary: + +**Process:** +--------------- + +In Parsl, a process is like a box that holds a set of tasks that can be executed together, sharing resources and context. A process in Parsl is a way to group related tasks, manage their dependencies, and optimize their execution. + .. _pythonappglossary: **Python App:** @@ -173,7 +180,7 @@ A Python app is a special kind of app in Parsl that's written as a Python functi **Resource:** --------------- -A resource in Parsl refers to any computational asset that can be used to execute tasks, such as CPU cores, memory, or entire nodes. It's like the tools and materials you need to get a job done. +A resource in Parsl refers to any computational asset that can be used to execute tasks, such as CPU cores, memory, or entire nodes. It's like the tools and materials you need to get a job done. Rsources, often grouped in nodes or clusters, are essential for processing workloads. .. _serializationglossary: @@ -187,32 +194,33 @@ Serialization is like packing your belongings into a suitcase so you can take th **Staging:** --------------- -Staging is like setting the stage for a play. In Parsl, it means preparing the data that your apps need before they start running. This can involve things like copying files to the right location or converting them into the right format. +Staging in Parsl refers to moving data to the appropriate location before an app starts running. This ensures that all necessary data is available where it needs to be for the app to execute properly. .. _taskglossary: **Task:** ------------ -A task in Parsl is the smallest unit of work that can be executed. It's like a single step in a larger process, where each task is part of a broader workflow or job. +A task in Parsl is the execution of an app, it is the smallest unit of work that can be executed. It's like a single step in a larger process, where each task is part of a broader workflow or job. .. _threadglossary: **Thread:** ------------- -A thread is like a smaller part of a program that can run independently. It's like a worker in a factory who can do their job at the same time as other workers. +A thread is like a smaller part of a program that can run independently. It's like a worker in a factory who can do their job at the same time as other workers. Threads are commonly used for parallelism within a single node. .. _workerglossary: **Worker:** ------------- -A worker in Parsl is like an employee in the factory who does the actual work. Workers run on nodes and are responsible for executing the tasks assigned to them. Multiple workers can work on a single node, sharing the node’s resources to get the job done efficiently. +A worker in Parsl is an independent process that runs on a node to execute tasks. Unlike threads, which share resources within a single process, workers operate as separate entities, each potentially handling different tasks on the same or different nodes. .. _workflowglossary: **Workflow:** ---------------- -A workflow is like a series of steps that you follow to complete a task. In Parsl, it's a way to describe how your apps should run and how they depend on each other. It's like a flowchart that shows you the order in which things need to happen. +A workflow is like a series of steps that you follow to complete a task. In Parsl, it's a way to describe how your apps should run and how they depend on each other, like a flowchart that shows you the order in which things need to happen. A workflow is typically expressed in a Parsl script, which is a Python program that leverages the Parsl library to orchestrate these tasks in a structured manner. + From 086e26a6f51053ebeea6952331ef08bec0b30aad Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Sat, 17 Aug 2024 03:41:57 +0100 Subject: [PATCH 18/19] Update glossary.rst Applied more feedback for three definitions and took out a fourth --- docs/userguide/glossary.rst | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/docs/userguide/glossary.rst b/docs/userguide/glossary.rst index b5d537447a..b8dc68be77 100644 --- a/docs/userguide/glossary.rst +++ b/docs/userguide/glossary.rst @@ -47,7 +47,7 @@ Checkpointing is like saving your progress in a video game. If something goes wr **Concurrency:** ------------------- -Concurrency means doing multiple things at the same time. In Parsl, it enables your apps to run in parallel across different resources, significantly speeding up program execution. +Concurrency means doing multiple things at the same time. In Parsl, it enables your apps to run in parallel across different resources, significantly speeding up program execution. It's like a chef preparing multiple dishes in a single kitchen, switching between all of them quickly. .. _configurationglossary: @@ -131,7 +131,7 @@ Memoization is like remembering something so you don't have to do it again. In P **MPI App:** --------------- -An MPI app is a specialized app that uses the Message Passing Interface (MPI) for communication between different nodes within the app. It enables different parts of the app to communicate and work together effectively. It's like a walkie-talkie that lets different parts of an app talk to each other. +An MPI app is a specialized app that uses the Message Passing Interface (MPI) for communication, which can occur both across nodes and within a single node. MPI enables different parts of the app to communicate and coordinate their activities, similar to how a walkie-talkie allows different teams to stay in sync. .. _nodeglossary: @@ -145,7 +145,7 @@ A node in Parsl is like a workstation in a factory. It's a physical or virtual m **Parallelism:** ------------------- -Parallelism means doing multiple things at the same time but not necessarily in the same location or using the same resources. In Parsl, it involves running apps simultaneously across different nodes or computational resources, accelerating program execution. +Parallelism means doing multiple things at the same time but not necessarily in the same location or using the same resources. In Parsl, it involves running apps simultaneously across different nodes or computational resources, accelerating program execution. Unlike concurrency which is like a chef preparing multiple dishes in a single kitchen, parallelism is like multiple chefs preparing different dishes in separate kitchens, at the same time. .. _parslscriptglossary: @@ -161,13 +161,6 @@ A Parsl script is a Python program that uses the Parsl library to define and run A plugin is an add-on for Parsl. It's a piece of code that you can add to Parsl to give it new features or change how it works. It's like an extra tool that you can add to your toolbox. -.. _processglossary: - -**Process:** ---------------- - -In Parsl, a process is like a box that holds a set of tasks that can be executed together, sharing resources and context. A process in Parsl is a way to group related tasks, manage their dependencies, and optimize their execution. - .. _pythonappglossary: **Python App:** @@ -194,7 +187,7 @@ Serialization is like packing your belongings into a suitcase so you can take th **Staging:** --------------- -Staging in Parsl refers to moving data to the appropriate location before an app starts running. This ensures that all necessary data is available where it needs to be for the app to execute properly. +Staging in Parsl involves moving data to the appropriate location before an app starts running and can also include moving data back after the app finishes. This process ensures that all necessary data is available where it needs to be for the app to execute properly and that the output data is returned to a specified location once the execution is complete. .. _taskglossary: From a964e6393e8133b4598343f24c9198e6bc0d730f Mon Sep 17 00:00:00 2001 From: Annabelle Kelechi Nwankwo <33545211+Kanegraffiti@users.noreply.github.com> Date: Sat, 17 Aug 2024 04:17:15 +0100 Subject: [PATCH 19/19] Update glossary.rst Fixed a typo --- docs/userguide/glossary.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide/glossary.rst b/docs/userguide/glossary.rst index b8dc68be77..a1a773b6a8 100644 --- a/docs/userguide/glossary.rst +++ b/docs/userguide/glossary.rst @@ -173,7 +173,7 @@ A Python app is a special kind of app in Parsl that's written as a Python functi **Resource:** --------------- -A resource in Parsl refers to any computational asset that can be used to execute tasks, such as CPU cores, memory, or entire nodes. It's like the tools and materials you need to get a job done. Rsources, often grouped in nodes or clusters, are essential for processing workloads. +A resource in Parsl refers to any computational asset that can be used to execute tasks, such as CPU cores, memory, or entire nodes. It's like the tools and materials you need to get a job done. Resources, often grouped in nodes or clusters, are essential for processing workloads. .. _serializationglossary: