{"id":1392,"date":"2022-04-19T13:37:54","date_gmt":"2022-04-19T17:37:54","guid":{"rendered":"https:\/\/www.grid.ai\/?p=1392"},"modified":"2022-09-10T11:17:45","modified_gmt":"2022-09-10T15:17:45","slug":"creating-runs-in-grid","status":"publish","type":"post","link":"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/","title":{"rendered":"Creating Runs &#038; Attaching Datastores"},"content":{"rendered":"<h3>Overview of Runs<\/h3>\n<p><span style=\"font-weight: 400;\">When you&#8217;re ready to train your models at scale, you can use Runs. A Run is a collection of experiments.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Runs allow you to scale your machine learning code to hundreds of GPUs and model configurations without needing to change a single line of code. Grid Runs support all major machine learning frameworks, enabling full hyperparameter sweeps, native logging, artifacts, and Spot Instances all out of the box without the need to modify a single line of machine learning code.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Runs are &#8220;serverless&#8221;, which means that you only pay for the time your scripts are actually running. When running on your own infrastructure, this results in massive cost savings.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Grid Runs respect the use of .ignore files, which are used to tell a program which files it should ignore during execution. Grid gives preference to the .gridignore file. In the absence of a .gridignore file, Grid will concatenate the .gitignore and .dockerignore files to determine which files should be ignored. When creating a run, you do not have to provide these files to the CLI or UI &#8211; they are just expected to reside in the project root directory.<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\">Note: <\/span><\/i><i><span style=\"font-weight: 400;\">The examples used in this tutorial assume you have already installed and set up Grid. If you haven&#8217;t done this already, please visit <\/span><\/i><a href=\"https:\/\/www.grid.ai\/the-first-time-you-use-grid\/\"><i><span style=\"font-weight: 400;\">The First TIme You Use Grid<\/span><\/i><\/a><i><span style=\"font-weight: 400;\"> to learn more.\u00a0<\/span><\/i><\/p>\n<h3>How to Create Runs<\/h3>\n<p><span style=\"font-weight: 400;\">Runs are customizable and provide serverless compute. Here, we cover all available methods to customize Runs for any specific use case. The examples in this tutorial cover the following:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Creating vanilla Runs<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Creating Runs with script dependencies<\/span>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Handling requirements<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Runs with specified requirements.txt<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Runs with specified environment.yml<\/span><\/li>\n<\/ol>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Attaching Datastores to Runs<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Interruptible Runs<\/span><\/li>\n<\/ol>\n<h4>Creating Vanilla Runs<\/h4>\n<p><span style=\"font-weight: 400;\">A &#8220;vanilla&#8221; Run is a basic Run that only executes a script. This hello_world <\/span><a href=\"https:\/\/github.com\/oojo12\/hello_world\/tree\/main\"><span style=\"font-weight: 400;\">repo<\/span><\/a><span style=\"font-weight: 400;\"> will be used in the following example.<\/span><\/p>\n<pre>git clone https:\/\/github.com\/PyTorchLightning\/grid-tutorials.git\r\ncd features-intro\/runs\r\ngrid run --name hello hello.py<\/pre>\n<p><span style=\"font-weight: 400;\">The above code is passing a script named hello.py to the Run. The script will print out &#8216;hello_world&#8217;.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For instructions on how to view logs, check out <\/span><a href=\"https:\/\/docs.grid.ai\/features\/runs\/viewing-logs\"><span style=\"font-weight: 400;\">viewing logs produced by Runs<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h4>Creating Runs with Script Dependencies<\/h4>\n<p><span style=\"font-weight: 400;\">If you\u2019ve taken a look at the grid-tutorials repo, you may have noticed three things:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">It has a requirements.txt in the root directory<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">There is a directory called \u201cpip\u201d<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">There is a directory called \u201cconda\u201d<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Let\u2019s quickly discuss how Grid handles requirements before touching on each of these topics.<\/span><\/p>\n<p><b>Handling Requirements<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Any time you create a Run, Grid attempts to resolve as many dependencies as it can automatically for you. Nested requirements are not currently supported.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We do, however, recommend that your projects have a <\/span><code>requirements.txt<\/code><span style=\"font-weight: 400;\"> file in the root.<\/span><\/p>\n<p><b>Runs with Specified requirements.txt<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Runs allow you to specify which requirements.txt you want to use for package installation. This is especially useful when your directory isn&#8217;t ordered in such a way that the <code>requirements.txt<\/code> resides at the root project level, or if you have more than one <code>requirements.txt<\/code> file.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In these cases, you can use the below example as a template for specifying which <code>requirements.txt<\/code> file should be used for package installation.<\/span><\/p>\n<pre>git clone https:\/\/github.com\/PyTorchLightning\/grid-tutorials.git\r\ncd features-intro\/runs\r\ngrid run --name specified-requirements-pip --dependency_file .\/pip\/requirements.txt hello.py<\/pre>\n<p><span style=\"font-weight: 400;\">You may have noticed that we did something different here than in prior examples: we used the <\/span><code>--dependency_file<\/code><span style=\"font-weight: 400;\"> flag. This flag tells Grid what file should be used for package installation in the Run.<\/span><\/p>\n<p><b>Runs with Specified environment.yml<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Runs allow you to specify the <code>environment.yml<\/code> you want to use for package installation. This is the only way to get Runs to use the Conda package manager without using a config file.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">When running on a non-Linux machine, we recommend using <\/span><code>conda env export --from-history<\/code><span style=\"font-weight: 400;\"> before creating a Run, as mentioned in the <\/span><a href=\"https:\/\/docs.conda.io\/projects\/conda\/en\/latest\/user-guide\/tasks\/manage-environments.html#exporting-an-environment-file-across-platforms\"><span style=\"font-weight: 400;\">official Conda documentation<\/span><\/a><span style=\"font-weight: 400;\">. This is because <\/span><code>conda export<\/code><span style=\"font-weight: 400;\"> will output dependencies specifically for your operating system.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">You can use the example below as a template for specifying which <code>environment.yml<\/code> file should be used for package installation:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">git clone <\/span><a href=\"https:\/\/github.com\/PyTorchLightning\/grid-tutorials.git\"><span style=\"font-weight: 400;\">https:\/\/github.com\/PyTorchLightning\/grid-tutorials.git<\/span><\/a>\r\n<span style=\"font-weight: 400;\">cd features-intro\/runs<\/span>\r\n<span style=\"font-weight: 400;\">grid run --name specified-requirements-conda --dependency_file .\/conda\/environemnt.yml hello.py<\/span><\/pre>\n<h4>Attaching Datastores to Runs<\/h4>\n<p><span style=\"font-weight: 400;\">To speed up training iteration time, you can store your data in a Grid Datastore. Datastores are high-performance, low-latency, versioned datasets. If you have large-scale data, Datastores can resolve blockers in your workflow by eliminating the need to download the large dataset every time your script runs.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you haven&#8217;t done so already, create a Datastore from the cifar5 dataset using the following commands:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\"># download<\/span>\r\n<span style=\"font-weight: 400;\">curl https:\/\/pl-flash-data.s3.amazonaws.com\/cifar5.zip -o cifar5.zip<\/span>\r\n<span style=\"font-weight: 400;\"># unzip<\/span>\r\n<span style=\"font-weight: 400;\">unzip cifar5.zip<\/span>\r\n<span style=\"font-weight: 400;\">grid datastore create cifar5\/ --name cifar5<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">Now let&#8217;s mount this Datastore to a Run:<\/span><\/p>\n<pre>git clone https:\/\/github.com\/PyTorchLightning\/grid-tutorials.git\r\ncd features-intro\/runs\r\ngrid run --name attaching-datastore --datastore_name cifar5 --datastore_version 1 datastore.py --data_dir \/datastores\/cifar5\/1<\/pre>\n<p><span style=\"font-weight: 400;\">This code passes a script named datastore.py to the Run. The script prints the contents of the Datastore to the root directory. You should see the following output in your stdout logs:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">['test', 'train']<\/span><\/pre>\n<h4>Interruptible Runs<a href=\"https:\/\/docs.grid.ai\/platform\/tips-and-tricks#interruptible-runs\"><b>\u200b<\/b><\/a><\/h4>\n<p><a href=\"https:\/\/docs.grid.ai\/features\/runs\/interruptible-machines\"><span style=\"font-weight: 400;\">Interruptible Runs<\/span><\/a><span style=\"font-weight: 400;\"> powered by spot instances are 50-90% cheaper than on-demand instances, but they can be interrupted at any time if the machine gets taken away. Here is how you launch a Run with spot instances:<\/span><\/p>\n<pre>grid run --use_spot train.py<\/pre>\n<p><i><span style=\"font-weight: 400;\">What happens to your models if the Run gets interrupted?\u00a0<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400;\">Grid keeps all the artifacts that you saved during training, including logs, checkpoints and other files. This means that if you write your training script such that it periodically saves checkpoint files with all the states needed to resume your training, you can restart the Grid Run from where it was interrupted:<\/span><\/p>\n<pre>grid run --use_spot train.py --checkpoint_path \"https:\/\/grid.ai\/url\/to\/ckpt\"<\/pre>\n<p><span style=\"font-weight: 400;\">Writing the logic for checkpointing and resuming the training loop correctly, however, can be difficult and time consuming.\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/pytorch-lightning.readthedocs.io\/en\/latest\/\"><span style=\"font-weight: 400;\">PyTorch Lightning<\/span><\/a><span style=\"font-weight: 400;\"> removes the need to write all this boilerplate code. In fact, if you implement your training script with PyTorch Lightning, you will have to change <\/span><b>zero<\/b><span style=\"font-weight: 400;\"> lines of code to use interruptible Runs in Grid. All you have to do is add the <\/span><code>--auto-resume<\/code><span style=\"font-weight: 400;\"> flag to the <\/span><code>grid run<\/code><span style=\"font-weight: 400;\"> command and to make your experiments fault-tolerant:<\/span><\/p>\n<pre>grid run --use_spot --auto_resume train.py<\/pre>\n<p><span style=\"font-weight: 400;\">If this Run gets interrupted, PyTorch Lightning will save a fault-tolerant checkpoint automatically, Grid will collect it, provision a new machine, restart the Run for you and let PyTorch Lightning restore the training state where it left off. Mind-blowing! Learn more about <\/span><a href=\"https:\/\/docs.grid.ai\/features\/runs\/auto-resume-experiments\"><span style=\"font-weight: 400;\">auto-resuming experiments in Grid<\/span><\/a><span style=\"font-weight: 400;\"> or the <\/span><a href=\"https:\/\/pytorch-lightning.readthedocs.io\/en\/stable\/advanced\/fault_tolerant_training.html?highlight=fault-tolerance\"><span style=\"font-weight: 400;\">fault-tolerance feature in PyTorch Lightning<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">And that\u2019s it! You can check out other Grid tutorials, or browse the <\/span><a href=\"https:\/\/docs.grid.ai\/\"><span style=\"font-weight: 400;\">Grid Docs<\/span><\/a><span style=\"font-weight: 400;\"> to learn more about anything not covered in this tutorial.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As always, Happy Grid-ing!<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Overview of Runs When you&#8217;re ready to train your models at scale, you can use Runs. A Run is a collection of experiments. Runs allow you to scale your machine learning code to hundreds of GPUs and model configurations without needing to change a single line of code. Grid Runs support all major machine learning<a class=\"excerpt-read-more\" href=\"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/\" title=\"ReadCreating Runs &#038; Attaching Datastores\">&#8230; Read more &raquo;<\/a><\/p>\n","protected":false},"author":16,"featured_media":1352,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[103],"tags":[43],"glossary":[],"acf":{"hide_from_archive":null,"content_type":null,"code_embed":null,"code_shortcode":null,"custom_styles":null,"sticky":null,"additional_authors":null,"mathjax":null,"default_editor":null,"sections":null,"show_table_of_contents":null,"table_of_contents":null,"tabs":null,"tab_group":null},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Creating Runs &amp; Attaching Datastores - Lightning AI<\/title>\n<meta name=\"description\" content=\"Follow this tutorial to learn how to create different types of Runs in Grid, as well as attaching Datastores to Runs.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating Runs &amp; Attaching Datastores - Lightning AI\" \/>\n<meta property=\"og:description\" content=\"Follow this tutorial to learn how to create different types of Runs in Grid, as well as attaching Datastores to Runs.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/\" \/>\n<meta property=\"og:site_name\" content=\"Lightning AI\" \/>\n<meta property=\"article:published_time\" content=\"2022-04-19T17:37:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-10T15:17:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/lightningaidev.wpengine.com\/wp-content\/uploads\/2022\/03\/dbf0a58a-fbe7-4ecf-bf51-c65f90243f9a.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1280\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"JP Hennessy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@LightningAI\" \/>\n<meta name=\"twitter:site\" content=\"@LightningAI\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"JP Hennessy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/\"},\"author\":{\"name\":\"JP Hennessy\",\"@id\":\"https:\/\/lightning.ai\/pages\/#\/schema\/person\/2518f4d5541f8e98016f6289169141a6\"},\"headline\":\"Creating Runs &#038; Attaching Datastores\",\"datePublished\":\"2022-04-19T17:37:54+00:00\",\"dateModified\":\"2022-09-10T15:17:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/\"},\"wordCount\":1006,\"publisher\":{\"@id\":\"https:\/\/lightning.ai\/pages\/#organization\"},\"image\":{\"@id\":\"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/lightningaidev.wpengine.com\/wp-content\/uploads\/2022\/03\/dbf0a58a-fbe7-4ecf-bf51-c65f90243f9a.png\",\"keywords\":[\"Grid\"],\"articleSection\":[\"Technical Documentation\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/\",\"url\":\"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/\",\"name\":\"Creating Runs & Attaching Datastores - Lightning AI\",\"isPartOf\":{\"@id\":\"https:\/\/lightning.ai\/pages\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/lightningaidev.wpengine.com\/wp-content\/uploads\/2022\/03\/dbf0a58a-fbe7-4ecf-bf51-c65f90243f9a.png\",\"datePublished\":\"2022-04-19T17:37:54+00:00\",\"dateModified\":\"2022-09-10T15:17:45+00:00\",\"description\":\"Follow this tutorial to learn how to create different types of Runs in Grid, as well as attaching Datastores to Runs.\",\"breadcrumb\":{\"@id\":\"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/#primaryimage\",\"url\":\"https:\/\/lightningaidev.wpengine.com\/wp-content\/uploads\/2022\/03\/dbf0a58a-fbe7-4ecf-bf51-c65f90243f9a.png\",\"contentUrl\":\"https:\/\/lightningaidev.wpengine.com\/wp-content\/uploads\/2022\/03\/dbf0a58a-fbe7-4ecf-bf51-c65f90243f9a.png\",\"width\":2560,\"height\":1280,\"caption\":\"Grid Tutorial: Creating Datastores\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/lightning.ai\/pages\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating Runs &#038; Attaching Datastores\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/lightning.ai\/pages\/#website\",\"url\":\"https:\/\/lightning.ai\/pages\/\",\"name\":\"Lightning AI\",\"description\":\"The platform for teams to build AI.\",\"publisher\":{\"@id\":\"https:\/\/lightning.ai\/pages\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/lightning.ai\/pages\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/lightning.ai\/pages\/#organization\",\"name\":\"Lightning AI\",\"url\":\"https:\/\/lightning.ai\/pages\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/lightning.ai\/pages\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/lightningaidev.wpengine.com\/wp-content\/uploads\/2023\/02\/image-17.png\",\"contentUrl\":\"https:\/\/lightningaidev.wpengine.com\/wp-content\/uploads\/2023\/02\/image-17.png\",\"width\":1744,\"height\":856,\"caption\":\"Lightning AI\"},\"image\":{\"@id\":\"https:\/\/lightning.ai\/pages\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/LightningAI\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/lightning.ai\/pages\/#\/schema\/person\/2518f4d5541f8e98016f6289169141a6\",\"name\":\"JP Hennessy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/lightning.ai\/pages\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/28ade268218ae45f723b0b62499f527a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/28ade268218ae45f723b0b62499f527a?s=96&d=mm&r=g\",\"caption\":\"JP Hennessy\"},\"url\":\"https:\/\/lightning.ai\/pages\/author\/jplightning-ai\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creating Runs & Attaching Datastores - Lightning AI","description":"Follow this tutorial to learn how to create different types of Runs in Grid, as well as attaching Datastores to Runs.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/","og_locale":"en_US","og_type":"article","og_title":"Creating Runs & Attaching Datastores - Lightning AI","og_description":"Follow this tutorial to learn how to create different types of Runs in Grid, as well as attaching Datastores to Runs.","og_url":"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/","og_site_name":"Lightning AI","article_published_time":"2022-04-19T17:37:54+00:00","article_modified_time":"2022-09-10T15:17:45+00:00","og_image":[{"width":2560,"height":1280,"url":"https:\/\/lightningaidev.wpengine.com\/wp-content\/uploads\/2022\/03\/dbf0a58a-fbe7-4ecf-bf51-c65f90243f9a.png","type":"image\/png"}],"author":"JP Hennessy","twitter_card":"summary_large_image","twitter_creator":"@LightningAI","twitter_site":"@LightningAI","twitter_misc":{"Written by":"JP Hennessy","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/#article","isPartOf":{"@id":"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/"},"author":{"name":"JP Hennessy","@id":"https:\/\/lightning.ai\/pages\/#\/schema\/person\/2518f4d5541f8e98016f6289169141a6"},"headline":"Creating Runs &#038; Attaching Datastores","datePublished":"2022-04-19T17:37:54+00:00","dateModified":"2022-09-10T15:17:45+00:00","mainEntityOfPage":{"@id":"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/"},"wordCount":1006,"publisher":{"@id":"https:\/\/lightning.ai\/pages\/#organization"},"image":{"@id":"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/#primaryimage"},"thumbnailUrl":"https:\/\/lightningaidev.wpengine.com\/wp-content\/uploads\/2022\/03\/dbf0a58a-fbe7-4ecf-bf51-c65f90243f9a.png","keywords":["Grid"],"articleSection":["Technical Documentation"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/","url":"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/","name":"Creating Runs & Attaching Datastores - Lightning AI","isPartOf":{"@id":"https:\/\/lightning.ai\/pages\/#website"},"primaryImageOfPage":{"@id":"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/#primaryimage"},"image":{"@id":"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/#primaryimage"},"thumbnailUrl":"https:\/\/lightningaidev.wpengine.com\/wp-content\/uploads\/2022\/03\/dbf0a58a-fbe7-4ecf-bf51-c65f90243f9a.png","datePublished":"2022-04-19T17:37:54+00:00","dateModified":"2022-09-10T15:17:45+00:00","description":"Follow this tutorial to learn how to create different types of Runs in Grid, as well as attaching Datastores to Runs.","breadcrumb":{"@id":"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/#primaryimage","url":"https:\/\/lightningaidev.wpengine.com\/wp-content\/uploads\/2022\/03\/dbf0a58a-fbe7-4ecf-bf51-c65f90243f9a.png","contentUrl":"https:\/\/lightningaidev.wpengine.com\/wp-content\/uploads\/2022\/03\/dbf0a58a-fbe7-4ecf-bf51-c65f90243f9a.png","width":2560,"height":1280,"caption":"Grid Tutorial: Creating Datastores"},{"@type":"BreadcrumbList","@id":"https:\/\/lightning.ai\/pages\/community\/technical-documentation\/creating-runs-in-grid\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/lightning.ai\/pages\/"},{"@type":"ListItem","position":2,"name":"Creating Runs &#038; Attaching Datastores"}]},{"@type":"WebSite","@id":"https:\/\/lightning.ai\/pages\/#website","url":"https:\/\/lightning.ai\/pages\/","name":"Lightning AI","description":"The platform for teams to build AI.","publisher":{"@id":"https:\/\/lightning.ai\/pages\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/lightning.ai\/pages\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/lightning.ai\/pages\/#organization","name":"Lightning AI","url":"https:\/\/lightning.ai\/pages\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lightning.ai\/pages\/#\/schema\/logo\/image\/","url":"https:\/\/lightningaidev.wpengine.com\/wp-content\/uploads\/2023\/02\/image-17.png","contentUrl":"https:\/\/lightningaidev.wpengine.com\/wp-content\/uploads\/2023\/02\/image-17.png","width":1744,"height":856,"caption":"Lightning AI"},"image":{"@id":"https:\/\/lightning.ai\/pages\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/LightningAI"]},{"@type":"Person","@id":"https:\/\/lightning.ai\/pages\/#\/schema\/person\/2518f4d5541f8e98016f6289169141a6","name":"JP Hennessy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lightning.ai\/pages\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/28ade268218ae45f723b0b62499f527a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/28ade268218ae45f723b0b62499f527a?s=96&d=mm&r=g","caption":"JP Hennessy"},"url":"https:\/\/lightning.ai\/pages\/author\/jplightning-ai\/"}]}},"_links":{"self":[{"href":"https:\/\/lightning.ai\/pages\/wp-json\/wp\/v2\/posts\/1392"}],"collection":[{"href":"https:\/\/lightning.ai\/pages\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lightning.ai\/pages\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lightning.ai\/pages\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/lightning.ai\/pages\/wp-json\/wp\/v2\/comments?post=1392"}],"version-history":[{"count":0,"href":"https:\/\/lightning.ai\/pages\/wp-json\/wp\/v2\/posts\/1392\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lightning.ai\/pages\/wp-json\/wp\/v2\/media\/1352"}],"wp:attachment":[{"href":"https:\/\/lightning.ai\/pages\/wp-json\/wp\/v2\/media?parent=1392"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lightning.ai\/pages\/wp-json\/wp\/v2\/categories?post=1392"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lightning.ai\/pages\/wp-json\/wp\/v2\/tags?post=1392"},{"taxonomy":"glossary","embeddable":true,"href":"https:\/\/lightning.ai\/pages\/wp-json\/wp\/v2\/glossary?post=1392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}