diff --git a/conf/cmake/Examples.cmake b/conf/cmake/Examples.cmake index c54d182d98..317e3d809c 100755 --- a/conf/cmake/Examples.cmake +++ b/conf/cmake/Examples.cmake @@ -11,7 +11,8 @@ add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/workflow_api/basic-examples/cl add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/workflow_api/basic-examples/virtualized-cluster-bag-of-tasks EXCLUDE_FROM_ALL) add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/workflow_api/basic-examples/batch-bag-of-tasks EXCLUDE_FROM_ALL) add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/workflow_api/basic-examples/batch-pilot-job EXCLUDE_FROM_ALL) -add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/workflow_api/real-workflow-example EXCLUDE_FROM_ALL) +add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs EXCLUDE_FROM_ALL) +add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/workflow_api/real-workflow-examples/single-cluster-programmatic-platform EXCLUDE_FROM_ALL) add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/workflow_api/condor-grid-example EXCLUDE_FROM_ALL) #add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/workflow_api/basic-examples/io-pagecache EXCLUDE_FROM_ALL) diff --git a/examples/README.md b/examples/README.md index 102555b886..06ebf36030 100755 --- a/examples/README.md +++ b/examples/README.md @@ -96,10 +96,9 @@ to analyze action failures. #### Workflow-API Examples with real workflows and more sophisticated WMS implementations - - `workflow_api/real-workflow-example`: Two simulators, one in which the workflow is executed - using a batch compute service, and another in which the workflow is executed - using a cloud compute service. These simulators take as input workflow description - files from real-world workflow applications. They use the scheduler abstraction - provided by WRENCH to implement complex Workflow Management System. + - `workflow_api/real-workflow-examples`: Two simulators, one in which the workflow is executed + using a batch compute service (with pilot jobs) and a cloud compute services (with VMs), + and another in which the workflow is executed on a single cluster. These simulators take as input workflow description + files from real-world workflow applications, as provided by the WfCommons project. --- diff --git a/examples/run_all_examples.sh.in b/examples/run_all_examples.sh.in index abb3fdf74c..59e3bc07fe 100755 --- a/examples/run_all_examples.sh.in +++ b/examples/run_all_examples.sh.in @@ -133,11 +133,18 @@ echo "${bold}RUNNING: ${INSTALL_DIR}/workflow_api/basic-examples/batch-pilot-job ${INSTALL_DIR}/workflow_api/basic-examples/batch-pilot-job/wrench-example-batch-pilot-job ${INSTALL_DIR}/workflow_api/basic-examples/batch-pilot-job/four_hosts_scratch.xml fi -if [[ "${TO_EXCLUDE}" == *"wrench-example-real-workflow"* ]]; then - echo "${bold}SKIPPING: wrench-example-real-workflow${normal}" +if [[ "${TO_EXCLUDE}" == *"wrench-example-real-workflow-single-cluster"* ]]; then + echo "${bold}SKIPPING: wrench-example-real-workflow-single-cluster${normal}" else -echo "${bold}RUNNING: ${INSTALL_DIR}/workflow_api/real-workflow-example/wrench-example-real-workflow${normal}" -${INSTALL_DIR}/workflow_api/real-workflow-example/wrench-example-real-workflow ${INSTALL_DIR}/workflow_api/real-workflow-example/cloud_batch_platform.xml ${INSTALL_DIR}/workflow_api/real-workflow-example/1000genome-chameleon-2ch-100k-001.json +echo "${bold}RUNNING: ${INSTALL_DIR}/workflow_api/real-workflow-examples/wrench-example-real-workflow-single-cluster${normal}" +${INSTALL_DIR}/workflow_api/real-workflow-examples/single-cluster-programmatic-platform/wrench-example-real-workflow-single-cluster 10 ${INSTALL_DIR}/workflow_api/real-workflow-examples/single-cluster-programmatic-platform/1000genome-chameleon-2ch-100k-001.json +fi + +if [[ "${TO_EXCLUDE}" == *"wrench-example-real-workflow-vms-and-pilots"* ]]; then + echo "${bold}SKIPPING: wrench-example-real-workflow-vms-and-pilots${normal}" +else +echo "${bold}RUNNING: ${INSTALL_DIR}/workflow_api/real-workflow-examples/wrench-example-real-workflow-vms-and-pilots${normal}" +${INSTALL_DIR}/workflow_api/real-workflow-examples/vms-and-pilot-jobs/wrench-example-real-workflow-vms-and-pilots ${INSTALL_DIR}/workflow_api/real-workflow-examples/vms-and-pilot-jobs/cloud_batch_platform.xml ${INSTALL_DIR}/workflow_api/real-workflow-examples/vms-and-pilot-jobs/1000genome-chameleon-2ch-100k-001.json fi if [[ "${TO_EXCLUDE}" == *"wrench-example-condor-grid-universe"* ]]; then diff --git a/examples/workflow_api/basic-examples/bare-metal-bag-of-tasks-programmatic-platform/BareMetalBagOfTasksProgrammaticPlatform.cpp b/examples/workflow_api/basic-examples/bare-metal-bag-of-tasks-programmatic-platform/BareMetalBagOfTasksProgrammaticPlatform.cpp index e069d16fb2..dba2ce12d5 100755 --- a/examples/workflow_api/basic-examples/bare-metal-bag-of-tasks-programmatic-platform/BareMetalBagOfTasksProgrammaticPlatform.cpp +++ b/examples/workflow_api/basic-examples/bare-metal-bag-of-tasks-programmatic-platform/BareMetalBagOfTasksProgrammaticPlatform.cpp @@ -51,16 +51,16 @@ namespace sg4 = simgrid::s4u; class PlatformCreator { public: - PlatformCreator(double link_bw) : link_bw(link_bw) {} + explicit PlatformCreator(double link_bw) : link_bw(link_bw) {} void operator()() const { - create_platform(this->link_bw); + create_platform(); } private: double link_bw; - void create_platform(double link_bw) const { + void create_platform() const { // Create the top-level zone auto zone = sg4::create_full_zone("AS0"); // Create the WMSHost host with its disk diff --git a/examples/workflow_api/real-workflow-example/1000genome-chameleon-2ch-100k-001.json b/examples/workflow_api/real-workflow-examples/single-cluster-programmatic-platform/1000genome-chameleon-2ch-100k-001.json similarity index 100% rename from examples/workflow_api/real-workflow-example/1000genome-chameleon-2ch-100k-001.json rename to examples/workflow_api/real-workflow-examples/single-cluster-programmatic-platform/1000genome-chameleon-2ch-100k-001.json diff --git a/examples/workflow_api/real-workflow-examples/single-cluster-programmatic-platform/CMakeLists.txt b/examples/workflow_api/real-workflow-examples/single-cluster-programmatic-platform/CMakeLists.txt new file mode 100755 index 0000000000..a26d5f5c57 --- /dev/null +++ b/examples/workflow_api/real-workflow-examples/single-cluster-programmatic-platform/CMakeLists.txt @@ -0,0 +1,36 @@ + +set(CMAKE_CXX_STANDARD 17) + +# Add source to this project's executable. +add_executable(wrench-example-real-workflow-single-cluster + EXCLUDE_FROM_ALL + SimpleWMS.h + SimpleWMS.cpp + SimpleWorkflowSimulator.cpp) + +add_custom_target( + wrench-example-real-workflow-single-cluster-files + COMMAND /bin/sh -c "if [ '${CMAKE_CURRENT_SOURCE_DIR}' != '${CMAKE_CURRENT_BINARY_DIR}' ]; then /bin/cp -f ${CMAKE_CURRENT_SOURCE_DIR}/1000genome-chameleon-2ch-100k-001.json ${CMAKE_CURRENT_BINARY_DIR}/1000genome-chameleon-2ch-100k-001.json ; fi ;" + VERBATIM +) + +add_dependencies(examples wrench-example-real-workflow-single-cluster) +add_dependencies(wrench-example-real-workflow-single-cluster wrench-example-real-workflow-single-cluster-files) +add_dependencies(wrench-example-real-workflow-single-cluster wrenchwfcommonsworkflowparser) + +if (ENABLE_BATSCHED) + target_link_libraries(wrench-example-real-workflow-single-cluster + wrench + wrenchwfcommonsworkflowparser + ${SimGrid_LIBRARY} + ${Boost_LIBRARIES} + ${ZMQ_LIBRARY} + ) +else() + target_link_libraries(wrench-example-real-workflow-single-cluster + wrench + wrenchwfcommonsworkflowparser + ${SimGrid_LIBRARY} + ${Boost_LIBRARIES} + ) +endif() diff --git a/examples/workflow_api/real-workflow-examples/single-cluster-programmatic-platform/SimpleWMS.cpp b/examples/workflow_api/real-workflow-examples/single-cluster-programmatic-platform/SimpleWMS.cpp new file mode 100755 index 0000000000..1c3aac3f46 --- /dev/null +++ b/examples/workflow_api/real-workflow-examples/single-cluster-programmatic-platform/SimpleWMS.cpp @@ -0,0 +1,180 @@ +/** + * Copyright (c) 2017-2021. The WRENCH Team. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + */ + +#include + +#include "SimpleWMS.h" + +WRENCH_LOG_CATEGORY(simple_wms, "Log category for Simple WMS"); + +namespace wrench { + + /** + * @brief Constructor that creates a Simple WMS with + * a scheduler implementation, and a list of compute services + * + * @param workflow: a workflow to execute + * @param bare_metal_compute_services: bare-metal compute services available to run jobs + * @param storage_service: a storage service available to store files + * @param hostname: the name of the host on which to start the WMS + */ + SimpleWMS::SimpleWMS(const std::shared_ptr &workflow, + const std::set> &bare_metal_compute_services, + const std::shared_ptr &storage_service, + const std::string &hostname) : ExecutionController(hostname, "simple"), + workflow(workflow), + bare_metal_compute_services(bare_metal_compute_services), + storage_service(storage_service) {} + + /** + * @brief main method of the SimpleWMS daemon + * + * @return 0 on completion + * + */ + int SimpleWMS::main() { + TerminalOutput::setThisProcessLoggingColor(TerminalOutput::COLOR_GREEN); + + WRENCH_INFO("Starting on host %s", S4U_Simulation::getHostName().c_str()); + WRENCH_INFO("About to execute a workflow with %lu tasks", this->workflow->getNumberOfTasks()); + + // Create a job manager + this->job_manager = this->createJobManager(); + + // Populate data structure to keep track of idle cores at each compute service + for (auto const &cs : this->bare_metal_compute_services) { + this->core_utilization_map[cs] = cs->getTotalNumCores(false); + } + + + while (true) { + scheduleReadyTasks(workflow->getReadyTasks()); + + // Wait for a workflow execution event, and process it + try { + this->waitForAndProcessNextEvent(); + } catch (ExecutionException &e) { + WRENCH_INFO("Error while getting next execution event (%s)... ignoring and trying again", + (e.getCause()->toString().c_str())); + continue; + } + if (this->workflow->isDone()) { + break; + } + } + + S4U_Simulation::sleep(10); + + WRENCH_INFO("--------------------------------------------------------"); + if (this->workflow->isDone()) { + WRENCH_INFO("Workflow execution is complete!"); + } else { + WRENCH_INFO("Workflow execution is incomplete!"); + } + + WRENCH_INFO("WMS terminating"); + + return 0; + } + + /** + * @brief Process a StandardJobFailedEvent + * + * @param event: a workflow execution event + */ + void SimpleWMS::processEventStandardJobFailure(const std::shared_ptr &event) { + auto job = event->standard_job; + TerminalOutput::setThisProcessLoggingColor(TerminalOutput::COLOR_RED); + WRENCH_INFO("Task %s has failed", (*job->getTasks().begin())->getID().c_str()); + WRENCH_INFO("failure cause: %s", event->failure_cause->toString().c_str()); + TerminalOutput::setThisProcessLoggingColor(TerminalOutput::COLOR_GREEN); + } + + /** + * @brief Process a StandardJobCompletedEvent + * + * @param event: a workflow execution event + */ + void SimpleWMS::processEventStandardJobCompletion(const std::shared_ptr &event) { + auto job = event->standard_job; + TerminalOutput::setThisProcessLoggingColor(TerminalOutput::COLOR_BLUE); + WRENCH_INFO("Task %s has COMPLETED (on service %s)", + (*job->getTasks().begin())->getID().c_str(), + job->getParentComputeService()->getName().c_str()); + TerminalOutput::setThisProcessLoggingColor(TerminalOutput::COLOR_GREEN); + this->core_utilization_map[job->getParentComputeService()]++; + } + + + /** + * @brief Helper method to schedule a task one available compute services. The naive scheduling + * strategy is to pick the task with the most computational work, and run it on + * the compute services with the fastest cores. In this example, all compute services + * are homogeneous, so we just pick the first available. + * + * @param ready_task: the ready tasks to schedule + * @return + */ + void SimpleWMS::scheduleReadyTasks(std::vector> ready_tasks) { + + if (ready_tasks.empty()) { + return; + } + + WRENCH_INFO("Trying to schedule %zu ready tasks", ready_tasks.size()); + // Sort the tasks + std::sort(ready_tasks.begin(), ready_tasks.end(), + [](const std::shared_ptr &x, + const std::shared_ptr &y) { + if (x->getFlops() < y->getFlops()) { + return true; + } else if (x->getFlops() > y->getFlops()) { + return false; + } else { + return (x.get() > y.get()); + } + } + ); + + unsigned long num_tasks_scheduled = 0; + for (auto const &task: ready_tasks) { + bool scheduled = false; + for (auto const &cs: this->bare_metal_compute_services) { + if (this->core_utilization_map[cs] > 0) { + // Specify that ALL files are read/written from the one storage service + std::map, std::shared_ptr> file_locations; + for (auto const &f: task->getInputFiles()) { + file_locations[f] = wrench::FileLocation::LOCATION(this->storage_service, f); + } + for (auto const &f: task->getOutputFiles()) { + file_locations[f] = wrench::FileLocation::LOCATION(this->storage_service, f); + } + try { + auto job = job_manager->createStandardJob(task, file_locations); + WRENCH_INFO( + "Submitting task %s to compute service %s", task->getID().c_str(), + cs->getName().c_str()); + job_manager->submitJob(job, cs); + this->core_utilization_map[cs]--; + num_tasks_scheduled++; + scheduled = true; + } catch (ExecutionException &e) { + WRENCH_INFO("WARNING: Was not able to submit task %s, likely due to the pilot job having expired " + "(I should get a notification of its expiration soon)", + task->getID().c_str()); + } + break; + } + } + if (not scheduled) break; + } + WRENCH_INFO("Was able to schedule %lu out of %zu ready tasks", num_tasks_scheduled, ready_tasks.size()); + } + +}// namespace wrench diff --git a/examples/workflow_api/real-workflow-examples/single-cluster-programmatic-platform/SimpleWMS.h b/examples/workflow_api/real-workflow-examples/single-cluster-programmatic-platform/SimpleWMS.h new file mode 100755 index 0000000000..259960aa79 --- /dev/null +++ b/examples/workflow_api/real-workflow-examples/single-cluster-programmatic-platform/SimpleWMS.h @@ -0,0 +1,46 @@ +/** + * Copyright (c) 2017-2018. The WRENCH Team. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + */ + +#ifndef WRENCH_EXAMPLE_SIMPLEWMS_H +#define WRENCH_EXAMPLE_SIMPLEWMS_H + +#include "wrench-dev.h" + +namespace wrench { + + /** + * @brief A simple WMS implementation + */ + class SimpleWMS : public ExecutionController { + + public: + SimpleWMS(const std::shared_ptr &workflow, + const std::set> &bare_metal_compute_services, + const std::shared_ptr &storage_service, + const std::string &hostname); + + protected: + void processEventStandardJobCompletion(const std::shared_ptr &event) override; + void processEventStandardJobFailure(const std::shared_ptr &event) override; + + private: + int main() override; + + void scheduleReadyTasks(std::vector> ready_tasks); + + std::shared_ptr workflow; + std::set> bare_metal_compute_services; + std::shared_ptr storage_service; + std::shared_ptr job_manager; + + std::map, unsigned long> core_utilization_map; + }; +}// namespace wrench + +#endif//WRENCH_EXAMPLE_SIMPLEWMS_H diff --git a/examples/workflow_api/real-workflow-examples/single-cluster-programmatic-platform/SimpleWorkflowSimulator.cpp b/examples/workflow_api/real-workflow-examples/single-cluster-programmatic-platform/SimpleWorkflowSimulator.cpp new file mode 100755 index 0000000000..2a3dbff352 --- /dev/null +++ b/examples/workflow_api/real-workflow-examples/single-cluster-programmatic-platform/SimpleWorkflowSimulator.cpp @@ -0,0 +1,180 @@ +/** + * Copyright (c) 2017. The WRENCH Team. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + */ + +#include +#include "wrench.h" + +#include "SimpleWMS.h" +#include "wrench/tools/wfcommons/WfCommonsWorkflowParser.h" +#include +#include + +#define MBPS (1000 * 1000) + +namespace sg4 = simgrid::s4u; + +/** + * @brief Function to instantiate a simulated platform, instead of + * loading it from an XML file. This function directly uses SimGrid's s4u API + * (see the SimGrid documentation). This function creates a platform that's + * identical to that described in the file two_hosts.xml located in this directory. + */ + +class PlatformCreator { + +public: + PlatformCreator(unsigned long num_compute_hosts) : num_compute_hosts(num_compute_hosts) {} + + void operator()() const { + create_platform(); + } + +private: + unsigned long num_compute_hosts; + + void create_platform() const { + // Create the top-level zone + auto zone = sg4::create_full_zone("AS0"); + + // Create the WMSHost host with its disk + auto wms_host = zone->create_host("WMSHost", "10Gf"); + wms_host->set_core_count(1); + auto wms_host_disk = wms_host->create_disk("hard_drive", + "100MBps", + "100MBps"); + wms_host_disk->set_property("size", "5000GiB"); + wms_host_disk->set_property("mount", "/"); + + // Create a single network link that abstracts the wide-area network + auto network_link = zone->create_link("network_link", 100 * MBPS)->set_latency("20us"); + + // Create the compute hosts and routes to them (could be done as a single cluster) + for (int i=0; i < num_compute_hosts; i++) { + auto compute_host = zone->create_host("ComputeHost_" + std::to_string(i), "1Gf"); + compute_host->set_core_count(1); + sg4::LinkInRoute network_link_in_route{network_link}; + zone->add_route(compute_host, + wms_host, + {network_link_in_route}); + } + + zone->seal(); + } +}; + +/** + * @brief An example that demonstrate how to run a simulation of a simple Workflow + * Management System (WMS) (implemented in SimpleWMS.[cpp|h]). + * + * @param argc: argument count + * @param argv: argument array + * @return 0 if the simulation has successfully completed + */ +int main(int argc, char **argv) { + + /* + * Declaration of the top-level WRENCH simulation object + */ + auto simulation = wrench::Simulation::createSimulation(); + + /* + * Initialization of the simulation, which may entail extracting WRENCH-specific and + * Simgrid-specific command-line arguments that can modify general simulation behavior. + * Two special command-line arguments are --help-wrench and --help-simgrid, which print + * details about available command-line arguments. + */ + simulation->init(&argc, argv); + + /* + * Parsing of the command-line arguments for this WRENCH simulation + */ + if (argc != 3) { + std::cerr << "Usage: " << argv[0] << " <# compute hosts> [--log=simple_wms.threshold=info]" << std::endl; + exit(1); + } + + /* The first argument is the workflow description file, written in JSON using WfCommons's WfFormat format */ + char *workflow_file = argv[2]; + + /* The second argument is the number of compute hosts to simulate */ + int num_compute_hosts; + try { + num_compute_hosts = std::atoi(argv[1]); + } catch (std::invalid_argument &e) { + std::cerr << "Invalid number of compute hosts\n"; + exit(1); + } + + /* Reading and parsing the workflow description file to create a wrench::Workflow object */ + std::cerr << "Loading workflow..." << std::endl; + std::shared_ptr workflow; + workflow = wrench::WfCommonsWorkflowParser::createWorkflowFromJSON(workflow_file, "100Gf", true); + std::cerr << "The workflow has " << workflow->getNumberOfTasks() << " tasks " << std::endl; + std::cerr.flush(); + + /* Reading and parsing the platform description file to instantiate a simulated platform */ + std::cerr << "Instantiating SimGrid platform programmatically ..." << std::endl; + PlatformCreator platform_creator(num_compute_hosts); + simulation->instantiatePlatform(platform_creator); + + /* Get a vector of all the hosts in the simulated platform */ + std::vector hostname_list = wrench::Simulation::getHostnameList(); + + /* Instantiate a storage service, to be started on the WMShost */ + std::cerr << "Instantiating a SimpleStorageService on WMSHost " << std::endl; + auto storage_service = simulation->add(wrench::SimpleStorageService::createSimpleStorageService({"WMSHost"}, {"/"})); + + /* Create a list of compute services */ + std::set> compute_services; + + /* Create a bare-metal compute service on each compute host in the platform */ + for (auto const &hostname : wrench::Simulation::getHostnameList()) { + if (hostname != "WMSHost") { + auto cs = simulation->add(new wrench::BareMetalComputeService({hostname}, {hostname}, "", {}, {})); + compute_services.insert(cs); + } + } + + /* Instantiate a WMS (which is an ExecutionController really), to be started on some host (wms_host), which is responsible + * for executing the workflow. + * + * The WMS implementation is in SimpleWMS.[cpp|h]. + */ + std::cerr << "Instantiating a WMS on WMSHost..." << std::endl; + auto wms = simulation->add( + new wrench::SimpleWMS(workflow, compute_services, storage_service, {"WMSHost"})); + + /* It is necessary to store, or "stage", input files for the first task(s) of the workflow on some storage + * service, so that workflow execution can be initiated. The getInputFiles() method of the Workflow class + * returns the set of all files that are not generated by workflow tasks, and thus are only input files. + * These files are then staged on the storage service. + */ + std::cerr << "Staging input files..." << std::endl; + for (auto const &f: workflow->getInputFiles()) { + try { + storage_service->createFile(f); + } catch (std::runtime_error &e) { + std::cerr << "Exception: " << e.what() << std::endl; + return 0; + } + } + + /* Launch the simulation. This call only returns when the simulation is complete. */ + std::cerr << "Launching the Simulation..." << std::endl; + try { + simulation->launch(); + } catch (std::runtime_error &e) { + std::cerr << "Exception: " << e.what() << std::endl; + return 0; + } + std::cerr << "Simulation done!" << std::endl; + std::cerr << "Workflow completed at time: " << workflow->getCompletionDate() << std::endl; + + return 0; +} diff --git a/examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs/1000genome-chameleon-2ch-100k-001.json b/examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs/1000genome-chameleon-2ch-100k-001.json new file mode 100644 index 0000000000..ae537ac970 --- /dev/null +++ b/examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs/1000genome-chameleon-2ch-100k-001.json @@ -0,0 +1,2217 @@ +{ + "name": "1000genome-20200401T035039Z-0", + "description": "Trace generated with wrench-pegasus-parser.py from http://wrench-project.org", + "createdAt": "2020-04-01T20:22:32.420180Z", + "schemaVersion": "1.5", + "author": { + "name": "rafsilva", + "email": "support@wrench-project.org" + }, + "workflow": { + "specification": { + "tasks": [ + { + "name": "individuals_ID0000001", + "id": "individuals_ID0000001", + "children": [ + "individuals_merge_ID0000011" + ], + "inputFiles": [ + "ALL.chr21.100000.vcf", + "columns.txt" + ], + "outputFiles": [ + "chr21n-1-1001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000002", + "id": "individuals_ID0000002", + "children": [ + "individuals_merge_ID0000011" + ], + "inputFiles": [ + "ALL.chr21.100000.vcf", + "columns.txt" + ], + "outputFiles": [ + "chr21n-1001-2001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000003", + "id": "individuals_ID0000003", + "children": [ + "individuals_merge_ID0000011" + ], + "inputFiles": [ + "ALL.chr21.100000.vcf", + "columns.txt" + ], + "outputFiles": [ + "chr21n-2001-3001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000004", + "id": "individuals_ID0000004", + "children": [ + "individuals_merge_ID0000011" + ], + "inputFiles": [ + "ALL.chr21.100000.vcf", + "columns.txt" + ], + "outputFiles": [ + "chr21n-3001-4001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000005", + "id": "individuals_ID0000005", + "children": [ + "individuals_merge_ID0000011" + ], + "inputFiles": [ + "ALL.chr21.100000.vcf", + "columns.txt" + ], + "outputFiles": [ + "chr21n-4001-5001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000006", + "id": "individuals_ID0000006", + "children": [ + "individuals_merge_ID0000011" + ], + "inputFiles": [ + "ALL.chr21.100000.vcf", + "columns.txt" + ], + "outputFiles": [ + "chr21n-5001-6001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000007", + "id": "individuals_ID0000007", + "children": [ + "individuals_merge_ID0000011" + ], + "inputFiles": [ + "ALL.chr21.100000.vcf", + "columns.txt" + ], + "outputFiles": [ + "chr21n-6001-7001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000008", + "id": "individuals_ID0000008", + "children": [ + "individuals_merge_ID0000011" + ], + "inputFiles": [ + "ALL.chr21.100000.vcf", + "columns.txt" + ], + "outputFiles": [ + "chr21n-7001-8001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000009", + "id": "individuals_ID0000009", + "children": [ + "individuals_merge_ID0000011" + ], + "inputFiles": [ + "ALL.chr21.100000.vcf", + "columns.txt" + ], + "outputFiles": [ + "chr21n-8001-9001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000010", + "id": "individuals_ID0000010", + "children": [ + "individuals_merge_ID0000011" + ], + "inputFiles": [ + "ALL.chr21.100000.vcf", + "columns.txt" + ], + "outputFiles": [ + "chr21n-9001-10001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_merge_ID0000011", + "id": "individuals_merge_ID0000011", + "children": [ + "mutation_overlap_ID0000025", + "frequency_ID0000026", + "mutation_overlap_ID0000027", + "frequency_ID0000028", + "mutation_overlap_ID0000029", + "frequency_ID0000030", + "mutation_overlap_ID0000031", + "frequency_ID0000032", + "mutation_overlap_ID0000033", + "frequency_ID0000034", + "mutation_overlap_ID0000035", + "frequency_ID0000036", + "mutation_overlap_ID0000037", + "frequency_ID0000038" + ], + "inputFiles": [ + "chr21n-4001-5001.tar.gz", + "chr21n-9001-10001.tar.gz", + "chr21n-5001-6001.tar.gz", + "chr21n-7001-8001.tar.gz", + "chr21n-6001-7001.tar.gz", + "chr21n-1001-2001.tar.gz", + "chr21n-8001-9001.tar.gz", + "chr21n-1-1001.tar.gz", + "chr21n-3001-4001.tar.gz", + "chr21n-2001-3001.tar.gz" + ], + "outputFiles": [ + "chr21n.tar.gz" + ], + "parents": [ + "individuals_ID0000004", + "individuals_ID0000005", + "individuals_ID0000006", + "individuals_ID0000007", + "individuals_ID0000001", + "individuals_ID0000002", + "individuals_ID0000003", + "individuals_ID0000008", + "individuals_ID0000009", + "individuals_ID0000010" + ] + }, + { + "name": "sifting_ID0000012", + "id": "sifting_ID0000012", + "children": [ + "mutation_overlap_ID0000025", + "frequency_ID0000026", + "mutation_overlap_ID0000027", + "frequency_ID0000028", + "mutation_overlap_ID0000029", + "frequency_ID0000030", + "mutation_overlap_ID0000031", + "frequency_ID0000032", + "mutation_overlap_ID0000033", + "frequency_ID0000034", + "mutation_overlap_ID0000035", + "frequency_ID0000036", + "mutation_overlap_ID0000037", + "frequency_ID0000038" + ], + "inputFiles": [ + "ALL.chr21.phase3_shapeit2_mvncall_integrated_v5.20130502.sites.annotation.vcf" + ], + "outputFiles": [ + "sifted.SIFT.chr21.txt" + ], + "parents": [] + }, + { + "name": "individuals_ID0000013", + "id": "individuals_ID0000013", + "children": [ + "individuals_merge_ID0000023" + ], + "inputFiles": [ + "columns.txt", + "ALL.chr22.100000.vcf" + ], + "outputFiles": [ + "chr22n-1-1001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000014", + "id": "individuals_ID0000014", + "children": [ + "individuals_merge_ID0000023" + ], + "inputFiles": [ + "columns.txt", + "ALL.chr22.100000.vcf" + ], + "outputFiles": [ + "chr22n-1001-2001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000015", + "id": "individuals_ID0000015", + "children": [ + "individuals_merge_ID0000023" + ], + "inputFiles": [ + "columns.txt", + "ALL.chr22.100000.vcf" + ], + "outputFiles": [ + "chr22n-2001-3001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000016", + "id": "individuals_ID0000016", + "children": [ + "individuals_merge_ID0000023" + ], + "inputFiles": [ + "columns.txt", + "ALL.chr22.100000.vcf" + ], + "outputFiles": [ + "chr22n-3001-4001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000017", + "id": "individuals_ID0000017", + "children": [ + "individuals_merge_ID0000023" + ], + "inputFiles": [ + "columns.txt", + "ALL.chr22.100000.vcf" + ], + "outputFiles": [ + "chr22n-4001-5001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000018", + "id": "individuals_ID0000018", + "children": [ + "individuals_merge_ID0000023" + ], + "inputFiles": [ + "columns.txt", + "ALL.chr22.100000.vcf" + ], + "outputFiles": [ + "chr22n-5001-6001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000019", + "id": "individuals_ID0000019", + "children": [ + "individuals_merge_ID0000023" + ], + "inputFiles": [ + "columns.txt", + "ALL.chr22.100000.vcf" + ], + "outputFiles": [ + "chr22n-6001-7001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000020", + "id": "individuals_ID0000020", + "children": [ + "individuals_merge_ID0000023" + ], + "inputFiles": [ + "columns.txt", + "ALL.chr22.100000.vcf" + ], + "outputFiles": [ + "chr22n-7001-8001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000021", + "id": "individuals_ID0000021", + "children": [ + "individuals_merge_ID0000023" + ], + "inputFiles": [ + "columns.txt", + "ALL.chr22.100000.vcf" + ], + "outputFiles": [ + "chr22n-8001-9001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_ID0000022", + "id": "individuals_ID0000022", + "children": [ + "individuals_merge_ID0000023" + ], + "inputFiles": [ + "columns.txt", + "ALL.chr22.100000.vcf" + ], + "outputFiles": [ + "chr22n-9001-10001.tar.gz" + ], + "parents": [] + }, + { + "name": "individuals_merge_ID0000023", + "id": "individuals_merge_ID0000023", + "children": [ + "mutation_overlap_ID0000039", + "frequency_ID0000040", + "mutation_overlap_ID0000041", + "frequency_ID0000042", + "mutation_overlap_ID0000043", + "frequency_ID0000044", + "mutation_overlap_ID0000045", + "frequency_ID0000046", + "mutation_overlap_ID0000047", + "frequency_ID0000048", + "mutation_overlap_ID0000049", + "frequency_ID0000050", + "mutation_overlap_ID0000051", + "frequency_ID0000052" + ], + "inputFiles": [ + "chr22n-4001-5001.tar.gz", + "chr22n-3001-4001.tar.gz", + "chr22n-1-1001.tar.gz", + "chr22n-2001-3001.tar.gz", + "chr22n-5001-6001.tar.gz", + "chr22n-6001-7001.tar.gz", + "chr22n-8001-9001.tar.gz", + "chr22n-7001-8001.tar.gz", + "chr22n-1001-2001.tar.gz", + "chr22n-9001-10001.tar.gz" + ], + "outputFiles": [ + "chr22n.tar.gz" + ], + "parents": [ + "individuals_ID0000015", + "individuals_ID0000016", + "individuals_ID0000017", + "individuals_ID0000018", + "individuals_ID0000013", + "individuals_ID0000014", + "individuals_ID0000019", + "individuals_ID0000022", + "individuals_ID0000020", + "individuals_ID0000021" + ] + }, + { + "name": "sifting_ID0000024", + "id": "sifting_ID0000024", + "children": [ + "mutation_overlap_ID0000039", + "frequency_ID0000040", + "mutation_overlap_ID0000041", + "frequency_ID0000042", + "mutation_overlap_ID0000043", + "frequency_ID0000044", + "mutation_overlap_ID0000045", + "frequency_ID0000046", + "mutation_overlap_ID0000047", + "frequency_ID0000048", + "mutation_overlap_ID0000049", + "frequency_ID0000050", + "mutation_overlap_ID0000051", + "frequency_ID0000052" + ], + "inputFiles": [ + "ALL.chr22.phase3_shapeit2_mvncall_integrated_v5.20130502.sites.annotation.vcf" + ], + "outputFiles": [ + "sifted.SIFT.chr22.txt" + ], + "parents": [] + }, + { + "name": "mutation_overlap_ID0000025", + "id": "mutation_overlap_ID0000025", + "children": [], + "inputFiles": [ + "columns.txt", + "AFR", + "chr21n.tar.gz", + "sifted.SIFT.chr21.txt" + ], + "outputFiles": [ + "chr21-AFR.tar.gz" + ], + "parents": [ + "sifting_ID0000012", + "individuals_merge_ID0000011" + ] + }, + { + "name": "frequency_ID0000026", + "id": "frequency_ID0000026", + "children": [], + "inputFiles": [ + "columns.txt", + "AFR", + "chr21n.tar.gz", + "sifted.SIFT.chr21.txt" + ], + "outputFiles": [ + "chr21-AFR-freq.tar.gz" + ], + "parents": [ + "sifting_ID0000012", + "individuals_merge_ID0000011" + ] + }, + { + "name": "mutation_overlap_ID0000027", + "id": "mutation_overlap_ID0000027", + "children": [], + "inputFiles": [ + "columns.txt", + "GBR", + "chr21n.tar.gz", + "sifted.SIFT.chr21.txt" + ], + "outputFiles": [ + "chr21-GBR.tar.gz" + ], + "parents": [ + "sifting_ID0000012", + "individuals_merge_ID0000011" + ] + }, + { + "name": "frequency_ID0000028", + "id": "frequency_ID0000028", + "children": [], + "inputFiles": [ + "columns.txt", + "GBR", + "chr21n.tar.gz", + "sifted.SIFT.chr21.txt" + ], + "outputFiles": [ + "chr21-GBR-freq.tar.gz" + ], + "parents": [ + "sifting_ID0000012", + "individuals_merge_ID0000011" + ] + }, + { + "name": "mutation_overlap_ID0000029", + "id": "mutation_overlap_ID0000029", + "children": [], + "inputFiles": [ + "ALL", + "columns.txt", + "chr21n.tar.gz", + "sifted.SIFT.chr21.txt" + ], + "outputFiles": [ + "chr21-ALL.tar.gz" + ], + "parents": [ + "sifting_ID0000012", + "individuals_merge_ID0000011" + ] + }, + { + "name": "frequency_ID0000030", + "id": "frequency_ID0000030", + "children": [], + "inputFiles": [ + "ALL", + "columns.txt", + "chr21n.tar.gz", + "sifted.SIFT.chr21.txt" + ], + "outputFiles": [ + "chr21-ALL-freq.tar.gz" + ], + "parents": [ + "sifting_ID0000012", + "individuals_merge_ID0000011" + ] + }, + { + "name": "mutation_overlap_ID0000031", + "id": "mutation_overlap_ID0000031", + "children": [], + "inputFiles": [ + "columns.txt", + "SAS", + "chr21n.tar.gz", + "sifted.SIFT.chr21.txt" + ], + "outputFiles": [ + "chr21-SAS.tar.gz" + ], + "parents": [ + "sifting_ID0000012", + "individuals_merge_ID0000011" + ] + }, + { + "name": "frequency_ID0000032", + "id": "frequency_ID0000032", + "children": [], + "inputFiles": [ + "columns.txt", + "SAS", + "chr21n.tar.gz", + "sifted.SIFT.chr21.txt" + ], + "outputFiles": [ + "chr21-SAS-freq.tar.gz" + ], + "parents": [ + "sifting_ID0000012", + "individuals_merge_ID0000011" + ] + }, + { + "name": "mutation_overlap_ID0000033", + "id": "mutation_overlap_ID0000033", + "children": [], + "inputFiles": [ + "EAS", + "columns.txt", + "chr21n.tar.gz", + "sifted.SIFT.chr21.txt" + ], + "outputFiles": [ + "chr21-EAS.tar.gz" + ], + "parents": [ + "sifting_ID0000012", + "individuals_merge_ID0000011" + ] + }, + { + "name": "frequency_ID0000034", + "id": "frequency_ID0000034", + "children": [], + "inputFiles": [ + "EAS", + "columns.txt", + "chr21n.tar.gz", + "sifted.SIFT.chr21.txt" + ], + "outputFiles": [ + "chr21-EAS-freq.tar.gz" + ], + "parents": [ + "sifting_ID0000012", + "individuals_merge_ID0000011" + ] + }, + { + "name": "mutation_overlap_ID0000035", + "id": "mutation_overlap_ID0000035", + "children": [], + "inputFiles": [ + "columns.txt", + "AMR", + "chr21n.tar.gz", + "sifted.SIFT.chr21.txt" + ], + "outputFiles": [ + "chr21-AMR.tar.gz" + ], + "parents": [ + "sifting_ID0000012", + "individuals_merge_ID0000011" + ] + }, + { + "name": "frequency_ID0000036", + "id": "frequency_ID0000036", + "children": [], + "inputFiles": [ + "columns.txt", + "AMR", + "chr21n.tar.gz", + "sifted.SIFT.chr21.txt" + ], + "outputFiles": [ + "chr21-AMR-freq.tar.gz" + ], + "parents": [ + "sifting_ID0000012", + "individuals_merge_ID0000011" + ] + }, + { + "name": "mutation_overlap_ID0000037", + "id": "mutation_overlap_ID0000037", + "children": [], + "inputFiles": [ + "EUR", + "columns.txt", + "chr21n.tar.gz", + "sifted.SIFT.chr21.txt" + ], + "outputFiles": [ + "chr21-EUR.tar.gz" + ], + "parents": [ + "sifting_ID0000012", + "individuals_merge_ID0000011" + ] + }, + { + "name": "frequency_ID0000038", + "id": "frequency_ID0000038", + "children": [], + "inputFiles": [ + "EUR", + "columns.txt", + "chr21n.tar.gz", + "sifted.SIFT.chr21.txt" + ], + "outputFiles": [ + "chr21-EUR-freq.tar.gz" + ], + "parents": [ + "sifting_ID0000012", + "individuals_merge_ID0000011" + ] + }, + { + "name": "mutation_overlap_ID0000039", + "id": "mutation_overlap_ID0000039", + "children": [], + "inputFiles": [ + "columns.txt", + "sifted.SIFT.chr22.txt", + "chr22n.tar.gz", + "AFR" + ], + "outputFiles": [ + "chr22-AFR.tar.gz" + ], + "parents": [ + "individuals_merge_ID0000023", + "sifting_ID0000024" + ] + }, + { + "name": "frequency_ID0000040", + "id": "frequency_ID0000040", + "children": [], + "inputFiles": [ + "columns.txt", + "sifted.SIFT.chr22.txt", + "chr22n.tar.gz", + "AFR" + ], + "outputFiles": [ + "chr22-AFR-freq.tar.gz" + ], + "parents": [ + "individuals_merge_ID0000023", + "sifting_ID0000024" + ] + }, + { + "name": "mutation_overlap_ID0000041", + "id": "mutation_overlap_ID0000041", + "children": [], + "inputFiles": [ + "columns.txt", + "sifted.SIFT.chr22.txt", + "chr22n.tar.gz", + "GBR" + ], + "outputFiles": [ + "chr22-GBR.tar.gz" + ], + "parents": [ + "individuals_merge_ID0000023", + "sifting_ID0000024" + ] + }, + { + "name": "frequency_ID0000042", + "id": "frequency_ID0000042", + "children": [], + "inputFiles": [ + "columns.txt", + "sifted.SIFT.chr22.txt", + "chr22n.tar.gz", + "GBR" + ], + "outputFiles": [ + "chr22-GBR-freq.tar.gz" + ], + "parents": [ + "individuals_merge_ID0000023", + "sifting_ID0000024" + ] + }, + { + "name": "mutation_overlap_ID0000043", + "id": "mutation_overlap_ID0000043", + "children": [], + "inputFiles": [ + "ALL", + "sifted.SIFT.chr22.txt", + "chr22n.tar.gz", + "columns.txt" + ], + "outputFiles": [ + "chr22-ALL.tar.gz" + ], + "parents": [ + "individuals_merge_ID0000023", + "sifting_ID0000024" + ] + }, + { + "name": "frequency_ID0000044", + "id": "frequency_ID0000044", + "children": [], + "inputFiles": [ + "ALL", + "sifted.SIFT.chr22.txt", + "chr22n.tar.gz", + "columns.txt" + ], + "outputFiles": [ + "chr22-ALL-freq.tar.gz" + ], + "parents": [ + "individuals_merge_ID0000023", + "sifting_ID0000024" + ] + }, + { + "name": "mutation_overlap_ID0000045", + "id": "mutation_overlap_ID0000045", + "children": [], + "inputFiles": [ + "SAS", + "sifted.SIFT.chr22.txt", + "chr22n.tar.gz", + "columns.txt" + ], + "outputFiles": [ + "chr22-SAS.tar.gz" + ], + "parents": [ + "individuals_merge_ID0000023", + "sifting_ID0000024" + ] + }, + { + "name": "frequency_ID0000046", + "id": "frequency_ID0000046", + "children": [], + "inputFiles": [ + "SAS", + "sifted.SIFT.chr22.txt", + "chr22n.tar.gz", + "columns.txt" + ], + "outputFiles": [ + "chr22-SAS-freq.tar.gz" + ], + "parents": [ + "individuals_merge_ID0000023", + "sifting_ID0000024" + ] + }, + { + "name": "mutation_overlap_ID0000047", + "id": "mutation_overlap_ID0000047", + "children": [], + "inputFiles": [ + "EAS", + "sifted.SIFT.chr22.txt", + "chr22n.tar.gz", + "columns.txt" + ], + "outputFiles": [ + "chr22-EAS.tar.gz" + ], + "parents": [ + "individuals_merge_ID0000023", + "sifting_ID0000024" + ] + }, + { + "name": "frequency_ID0000048", + "id": "frequency_ID0000048", + "children": [], + "inputFiles": [ + "EAS", + "sifted.SIFT.chr22.txt", + "chr22n.tar.gz", + "columns.txt" + ], + "outputFiles": [ + "chr22-EAS-freq.tar.gz" + ], + "parents": [ + "individuals_merge_ID0000023", + "sifting_ID0000024" + ] + }, + { + "name": "mutation_overlap_ID0000049", + "id": "mutation_overlap_ID0000049", + "children": [], + "inputFiles": [ + "AMR", + "sifted.SIFT.chr22.txt", + "chr22n.tar.gz", + "columns.txt" + ], + "outputFiles": [ + "chr22-AMR.tar.gz" + ], + "parents": [ + "individuals_merge_ID0000023", + "sifting_ID0000024" + ] + }, + { + "name": "frequency_ID0000050", + "id": "frequency_ID0000050", + "children": [], + "inputFiles": [ + "AMR", + "sifted.SIFT.chr22.txt", + "chr22n.tar.gz", + "columns.txt" + ], + "outputFiles": [ + "chr22-AMR-freq.tar.gz" + ], + "parents": [ + "individuals_merge_ID0000023", + "sifting_ID0000024" + ] + }, + { + "name": "mutation_overlap_ID0000051", + "id": "mutation_overlap_ID0000051", + "children": [], + "inputFiles": [ + "EUR", + "sifted.SIFT.chr22.txt", + "chr22n.tar.gz", + "columns.txt" + ], + "outputFiles": [ + "chr22-EUR.tar.gz" + ], + "parents": [ + "individuals_merge_ID0000023", + "sifting_ID0000024" + ] + }, + { + "name": "frequency_ID0000052", + "id": "frequency_ID0000052", + "children": [], + "inputFiles": [ + "EUR", + "sifted.SIFT.chr22.txt", + "chr22n.tar.gz", + "columns.txt" + ], + "outputFiles": [ + "chr22-EUR-freq.tar.gz" + ], + "parents": [ + "individuals_merge_ID0000023", + "sifting_ID0000024" + ] + } + ], + "files": [ + { + "id": "ALL.chr21.100000.vcf", + "sizeInBytes": 1014442803 + }, + { + "id": "columns.txt", + "sizeInBytes": 20078 + }, + { + "id": "chr21n-1-1001.tar.gz", + "sizeInBytes": 28281 + }, + { + "id": "chr21n-1001-2001.tar.gz", + "sizeInBytes": 28270 + }, + { + "id": "chr21n-2001-3001.tar.gz", + "sizeInBytes": 28266 + }, + { + "id": "chr21n-3001-4001.tar.gz", + "sizeInBytes": 28303 + }, + { + "id": "chr21n-4001-5001.tar.gz", + "sizeInBytes": 28232 + }, + { + "id": "chr21n-5001-6001.tar.gz", + "sizeInBytes": 28261 + }, + { + "id": "chr21n-6001-7001.tar.gz", + "sizeInBytes": 28307 + }, + { + "id": "chr21n-7001-8001.tar.gz", + "sizeInBytes": 28304 + }, + { + "id": "chr21n-8001-9001.tar.gz", + "sizeInBytes": 28348 + }, + { + "id": "chr21n-9001-10001.tar.gz", + "sizeInBytes": 28210 + }, + { + "id": "chr21n.tar.gz", + "sizeInBytes": 25037 + }, + { + "id": "ALL.chr21.phase3_shapeit2_mvncall_integrated_v5.20130502.sites.annotation.vcf", + "sizeInBytes": 267806263 + }, + { + "id": "sifted.SIFT.chr21.txt", + "sizeInBytes": 231958 + }, + { + "id": "ALL.chr22.100000.vcf", + "sizeInBytes": 1014493636 + }, + { + "id": "chr22n-1-1001.tar.gz", + "sizeInBytes": 28128 + }, + { + "id": "chr22n-1001-2001.tar.gz", + "sizeInBytes": 28281 + }, + { + "id": "chr22n-2001-3001.tar.gz", + "sizeInBytes": 28138 + }, + { + "id": "chr22n-3001-4001.tar.gz", + "sizeInBytes": 27624 + }, + { + "id": "chr22n-4001-5001.tar.gz", + "sizeInBytes": 27615 + }, + { + "id": "chr22n-5001-6001.tar.gz", + "sizeInBytes": 28138 + }, + { + "id": "chr22n-6001-7001.tar.gz", + "sizeInBytes": 28125 + }, + { + "id": "chr22n-7001-8001.tar.gz", + "sizeInBytes": 28244 + }, + { + "id": "chr22n-8001-9001.tar.gz", + "sizeInBytes": 28302 + }, + { + "id": "chr22n-9001-10001.tar.gz", + "sizeInBytes": 28272 + }, + { + "id": "chr22n.tar.gz", + "sizeInBytes": 25055 + }, + { + "id": "ALL.chr22.phase3_shapeit2_mvncall_integrated_v5.20130502.sites.annotation.vcf", + "sizeInBytes": 280949919 + }, + { + "id": "sifted.SIFT.chr22.txt", + "sizeInBytes": 480587 + }, + { + "id": "AFR", + "sizeInBytes": 8088 + }, + { + "id": "chr21-AFR.tar.gz", + "sizeInBytes": 144569 + }, + { + "id": "chr21-AFR-freq.tar.gz", + "sizeInBytes": 272990 + }, + { + "id": "GBR", + "sizeInBytes": 856 + }, + { + "id": "chr21-GBR.tar.gz", + "sizeInBytes": 136903 + }, + { + "id": "chr21-GBR-freq.tar.gz", + "sizeInBytes": 219928 + }, + { + "id": "ALL", + "sizeInBytes": 28000 + }, + { + "id": "chr21-ALL.tar.gz", + "sizeInBytes": 166614 + }, + { + "id": "chr21-ALL-freq.tar.gz", + "sizeInBytes": 289496 + }, + { + "id": "SAS", + "sizeInBytes": 5248 + }, + { + "id": "chr21-SAS.tar.gz", + "sizeInBytes": 143377 + }, + { + "id": "chr21-SAS-freq.tar.gz", + "sizeInBytes": 264723 + }, + { + "id": "EAS", + "sizeInBytes": 4896 + }, + { + "id": "chr21-EAS.tar.gz", + "sizeInBytes": 142592 + }, + { + "id": "chr21-EAS-freq.tar.gz", + "sizeInBytes": 265443 + }, + { + "id": "AMR", + "sizeInBytes": 4248 + }, + { + "id": "chr21-AMR.tar.gz", + "sizeInBytes": 142095 + }, + { + "id": "chr21-AMR-freq.tar.gz", + "sizeInBytes": 259983 + }, + { + "id": "EUR", + "sizeInBytes": 5312 + }, + { + "id": "chr21-EUR.tar.gz", + "sizeInBytes": 141848 + }, + { + "id": "chr21-EUR-freq.tar.gz", + "sizeInBytes": 266654 + }, + { + "id": "chr22-AFR.tar.gz", + "sizeInBytes": 146435 + }, + { + "id": "chr22-AFR-freq.tar.gz", + "sizeInBytes": 270800 + }, + { + "id": "chr22-GBR.tar.gz", + "sizeInBytes": 138728 + }, + { + "id": "chr22-GBR-freq.tar.gz", + "sizeInBytes": 221650 + }, + { + "id": "chr22-ALL.tar.gz", + "sizeInBytes": 169325 + }, + { + "id": "chr22-ALL-freq.tar.gz", + "sizeInBytes": 290690 + }, + { + "id": "chr22-SAS.tar.gz", + "sizeInBytes": 145894 + }, + { + "id": "chr22-SAS-freq.tar.gz", + "sizeInBytes": 265017 + }, + { + "id": "chr22-EAS.tar.gz", + "sizeInBytes": 145147 + }, + { + "id": "chr22-EAS-freq.tar.gz", + "sizeInBytes": 267302 + }, + { + "id": "chr22-AMR.tar.gz", + "sizeInBytes": 144357 + }, + { + "id": "chr22-AMR-freq.tar.gz", + "sizeInBytes": 258065 + }, + { + "id": "chr22-EUR.tar.gz", + "sizeInBytes": 143815 + }, + { + "id": "chr22-EUR-freq.tar.gz", + "sizeInBytes": 268471 + } + ] + }, + "execution": { + "makespanInSeconds": 776.0, + "executedAt": "20200401T035043+0000", + "tasks": [ + { + "id": "individuals_ID0000001", + "runtimeInSeconds": 53.6, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr21.100000.vcf", + "21", + "1", + "1001", + "10000" + ] + }, + "avgCPU": 160.8619, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000002", + "runtimeInSeconds": 52.255, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr21.100000.vcf", + "21", + "1001", + "2001", + "10000" + ] + }, + "avgCPU": 164.834, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000003", + "runtimeInSeconds": 53.827, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr21.100000.vcf", + "21", + "2001", + "3001", + "10000" + ] + }, + "avgCPU": 159.8919, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000004", + "runtimeInSeconds": 52.111, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr21.100000.vcf", + "21", + "3001", + "4001", + "10000" + ] + }, + "avgCPU": 165.3355, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000005", + "runtimeInSeconds": 52.409, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr21.100000.vcf", + "21", + "4001", + "5001", + "10000" + ] + }, + "avgCPU": 164.6378, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000006", + "runtimeInSeconds": 51.066, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr21.100000.vcf", + "21", + "5001", + "6001", + "10000" + ] + }, + "avgCPU": 168.7698, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000007", + "runtimeInSeconds": 51.545, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr21.100000.vcf", + "21", + "6001", + "7001", + "10000" + ] + }, + "avgCPU": 166.8445, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000008", + "runtimeInSeconds": 52.759, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr21.100000.vcf", + "21", + "7001", + "8001", + "10000" + ] + }, + "avgCPU": 163.5209, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000009", + "runtimeInSeconds": 52.859, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr21.100000.vcf", + "21", + "8001", + "9001", + "10000" + ] + }, + "avgCPU": 163.1662, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000010", + "runtimeInSeconds": 51.251, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr21.100000.vcf", + "21", + "9001", + "10001", + "10000" + ] + }, + "avgCPU": 168.6679, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_merge_ID0000011", + "runtimeInSeconds": 38.206, + "command": { + "program": "individuals_merge", + "arguments": [ + "21", + "chr21n-1-1001.tar.gz", + "chr21n-1001-2001.tar.gz", + "chr21n-2001-3001.tar.gz", + "chr21n-3001-4001.tar.gz", + "chr21n-4001-5001.tar.gz", + "chr21n-5001-6001.tar.gz", + "chr21n-6001-7001.tar.gz", + "chr21n-7001-8001.tar.gz", + "chr21n-8001-9001.tar.gz", + "chr21n-9001-10001.tar.gz" + ] + }, + "avgCPU": 108.5484, + "priority": 30, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "sifting_ID0000012", + "runtimeInSeconds": 0.309, + "command": { + "program": "sifting", + "arguments": [ + "ALL.chr21.phase3_shapeit2_mvncall_integrated_v5.20130502.sites.annotation.vcf", + "21" + ] + }, + "avgCPU": 116.8285, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000013", + "runtimeInSeconds": 51.199, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr22.100000.vcf", + "22", + "1", + "1001", + "10000" + ] + }, + "avgCPU": 169.0424, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000014", + "runtimeInSeconds": 53.755, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr22.100000.vcf", + "22", + "1001", + "2001", + "10000" + ] + }, + "avgCPU": 160.8743, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000015", + "runtimeInSeconds": 52.677, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr22.100000.vcf", + "22", + "2001", + "3001", + "10000" + ] + }, + "avgCPU": 177.4645, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000016", + "runtimeInSeconds": 52.968, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr22.100000.vcf", + "22", + "3001", + "4001", + "10000" + ] + }, + "avgCPU": 175.9383, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000017", + "runtimeInSeconds": 51.309, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr22.100000.vcf", + "22", + "4001", + "5001", + "10000" + ] + }, + "avgCPU": 169.4771, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000018", + "runtimeInSeconds": 51.475, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr22.100000.vcf", + "22", + "5001", + "6001", + "10000" + ] + }, + "avgCPU": 169.0782, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000019", + "runtimeInSeconds": 50.939, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr22.100000.vcf", + "22", + "6001", + "7001", + "10000" + ] + }, + "avgCPU": 168.9059, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000020", + "runtimeInSeconds": 52.127, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr22.100000.vcf", + "22", + "7001", + "8001", + "10000" + ] + }, + "avgCPU": 165.3366, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000021", + "runtimeInSeconds": 55.332, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr22.100000.vcf", + "22", + "8001", + "9001", + "10000" + ] + }, + "avgCPU": 157.6899, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_ID0000022", + "runtimeInSeconds": 53.637, + "command": { + "program": "individuals", + "arguments": [ + "ALL.chr22.100000.vcf", + "22", + "9001", + "10001", + "10000" + ] + }, + "avgCPU": 160.8349, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "individuals_merge_ID0000023", + "runtimeInSeconds": 37.667, + "command": { + "program": "individuals_merge", + "arguments": [ + "22", + "chr22n-1-1001.tar.gz", + "chr22n-1001-2001.tar.gz", + "chr22n-2001-3001.tar.gz", + "chr22n-3001-4001.tar.gz", + "chr22n-4001-5001.tar.gz", + "chr22n-5001-6001.tar.gz", + "chr22n-6001-7001.tar.gz", + "chr22n-7001-8001.tar.gz", + "chr22n-8001-9001.tar.gz", + "chr22n-9001-10001.tar.gz" + ] + }, + "avgCPU": 108.6628, + "priority": 30, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "sifting_ID0000024", + "runtimeInSeconds": 0.344, + "command": { + "program": "sifting", + "arguments": [ + "ALL.chr22.phase3_shapeit2_mvncall_integrated_v5.20130502.sites.annotation.vcf", + "22" + ] + }, + "avgCPU": 123.5465, + "priority": 20, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "mutation_overlap_ID0000025", + "runtimeInSeconds": 4.975, + "command": { + "program": "mutation_overlap", + "arguments": [ + "-c", + "21", + "-pop", + "AFR" + ] + }, + "avgCPU": 76.9246, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "frequency_ID0000026", + "runtimeInSeconds": 111.475, + "command": { + "program": "frequency", + "arguments": [ + "-c", + "21", + "-pop", + "AFR" + ] + }, + "avgCPU": 80.4754, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "mutation_overlap_ID0000027", + "runtimeInSeconds": 3.957, + "command": { + "program": "mutation_overlap", + "arguments": [ + "-c", + "21", + "-pop", + "GBR" + ] + }, + "avgCPU": 48.5469, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "frequency_ID0000028", + "runtimeInSeconds": 106.522, + "command": { + "program": "frequency", + "arguments": [ + "-c", + "21", + "-pop", + "GBR" + ] + }, + "avgCPU": 83.7874, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "mutation_overlap_ID0000029", + "runtimeInSeconds": 29.216, + "command": { + "program": "mutation_overlap", + "arguments": [ + "-c", + "21", + "-pop", + "ALL" + ] + }, + "avgCPU": 61.8326, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "frequency_ID0000030", + "runtimeInSeconds": 110.171, + "command": { + "program": "frequency", + "arguments": [ + "-c", + "21", + "-pop", + "ALL" + ] + }, + "avgCPU": 82.0152, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "mutation_overlap_ID0000031", + "runtimeInSeconds": 4.882, + "command": { + "program": "mutation_overlap", + "arguments": [ + "-c", + "21", + "-pop", + "SAS" + ] + }, + "avgCPU": 65.7927, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "frequency_ID0000032", + "runtimeInSeconds": 112.042, + "command": { + "program": "frequency", + "arguments": [ + "-c", + "21", + "-pop", + "SAS" + ] + }, + "avgCPU": 79.2551, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "mutation_overlap_ID0000033", + "runtimeInSeconds": 7.824, + "command": { + "program": "mutation_overlap", + "arguments": [ + "-c", + "21", + "-pop", + "EAS" + ] + }, + "avgCPU": 42.2163, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "frequency_ID0000034", + "runtimeInSeconds": 109.436, + "command": { + "program": "frequency", + "arguments": [ + "-c", + "21", + "-pop", + "EAS" + ] + }, + "avgCPU": 81.0245, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "mutation_overlap_ID0000035", + "runtimeInSeconds": 5.158, + "command": { + "program": "mutation_overlap", + "arguments": [ + "-c", + "21", + "-pop", + "AMR" + ] + }, + "avgCPU": 51.9581, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "frequency_ID0000036", + "runtimeInSeconds": 108.564, + "command": { + "program": "frequency", + "arguments": [ + "-c", + "21", + "-pop", + "AMR" + ] + }, + "avgCPU": 81.7269, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "mutation_overlap_ID0000037", + "runtimeInSeconds": 10.799, + "command": { + "program": "mutation_overlap", + "arguments": [ + "-c", + "21", + "-pop", + "EUR" + ] + }, + "avgCPU": 32.8827, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "frequency_ID0000038", + "runtimeInSeconds": 112.012, + "command": { + "program": "frequency", + "arguments": [ + "-c", + "21", + "-pop", + "EUR" + ] + }, + "avgCPU": 79.654, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "mutation_overlap_ID0000039", + "runtimeInSeconds": 4.902, + "command": { + "program": "mutation_overlap", + "arguments": [ + "-c", + "22", + "-pop", + "AFR" + ] + }, + "avgCPU": 79.845, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "frequency_ID0000040", + "runtimeInSeconds": 101.256, + "command": { + "program": "frequency", + "arguments": [ + "-c", + "22", + "-pop", + "AFR" + ] + }, + "avgCPU": 83.6691, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "mutation_overlap_ID0000041", + "runtimeInSeconds": 2.579, + "command": { + "program": "mutation_overlap", + "arguments": [ + "-c", + "22", + "-pop", + "GBR" + ] + }, + "avgCPU": 68.4762, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "frequency_ID0000042", + "runtimeInSeconds": 108.778, + "command": { + "program": "frequency", + "arguments": [ + "-c", + "22", + "-pop", + "GBR" + ] + }, + "avgCPU": 81.4264, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "mutation_overlap_ID0000043", + "runtimeInSeconds": 33.96, + "command": { + "program": "mutation_overlap", + "arguments": [ + "-c", + "22", + "-pop", + "ALL" + ] + }, + "avgCPU": 56.1366, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "frequency_ID0000044", + "runtimeInSeconds": 111.687, + "command": { + "program": "frequency", + "arguments": [ + "-c", + "22", + "-pop", + "ALL" + ] + }, + "avgCPU": 81.7615, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "mutation_overlap_ID0000045", + "runtimeInSeconds": 4.311, + "command": { + "program": "mutation_overlap", + "arguments": [ + "-c", + "22", + "-pop", + "SAS" + ] + }, + "avgCPU": 74.5999, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "frequency_ID0000046", + "runtimeInSeconds": 109.125, + "command": { + "program": "frequency", + "arguments": [ + "-c", + "22", + "-pop", + "SAS" + ] + }, + "avgCPU": 82.0481, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "mutation_overlap_ID0000047", + "runtimeInSeconds": 5.282, + "command": { + "program": "mutation_overlap", + "arguments": [ + "-c", + "22", + "-pop", + "EAS" + ] + }, + "avgCPU": 62.1734, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "frequency_ID0000048", + "runtimeInSeconds": 109.772, + "command": { + "program": "frequency", + "arguments": [ + "-c", + "22", + "-pop", + "EAS" + ] + }, + "avgCPU": 81.6492, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "mutation_overlap_ID0000049", + "runtimeInSeconds": 3.777, + "command": { + "program": "mutation_overlap", + "arguments": [ + "-c", + "22", + "-pop", + "AMR" + ] + }, + "avgCPU": 70.9558, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "frequency_ID0000050", + "runtimeInSeconds": 99.194, + "command": { + "program": "frequency", + "arguments": [ + "-c", + "22", + "-pop", + "AMR" + ] + }, + "avgCPU": 84.62, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "mutation_overlap_ID0000051", + "runtimeInSeconds": 5.341, + "command": { + "program": "mutation_overlap", + "arguments": [ + "-c", + "22", + "-pop", + "EUR" + ] + }, + "avgCPU": 61.2245, + "priority": 40, + "machines": [ + "pegasus-5" + ] + }, + { + "id": "frequency_ID0000052", + "runtimeInSeconds": 108.672, + "command": { + "program": "frequency", + "arguments": [ + "-c", + "22", + "-pop", + "EUR" + ] + }, + "avgCPU": 81.6733, + "priority": 40, + "machines": [ + "pegasus-5" + ] + } + ], + "machines": [ + { + "nodeName": "pegasus-5", + "system": "linux", + "architecture": "x86_64", + "release": "4.15.0-88-generic", + "cpu": { + "vendor": "GenuineIntel", + "coreCount": 48, + "speedInMHz": 1200 + }, + "memoryInBytes": 131795984000 + } + ] + } + }, + "runtimeSystem": { + "url": "http://pegasus.isi.edu", + "version": "4.9.3", + "name": "Pegasus" + } +} \ No newline at end of file diff --git a/examples/workflow_api/real-workflow-example/CMakeLists.txt b/examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs/CMakeLists.txt similarity index 61% rename from examples/workflow_api/real-workflow-example/CMakeLists.txt rename to examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs/CMakeLists.txt index 3ece892221..5f62bb6e24 100755 --- a/examples/workflow_api/real-workflow-example/CMakeLists.txt +++ b/examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs/CMakeLists.txt @@ -2,25 +2,25 @@ set(CMAKE_CXX_STANDARD 17) # Add source to this project's executable. -add_executable(wrench-example-real-workflow +add_executable(wrench-example-real-workflow-vms-and-pilots EXCLUDE_FROM_ALL - ./SimpleWMS.h - ./SimpleWMS.cpp - ./SimpleWorkflowSimulator.cpp) + SimpleWMS.h + SimpleWMS.cpp + SimpleWorkflowSimulator.cpp) add_custom_target( - wrench-example-real-workflow-files + wrench-example-real-workflow-vms-and-pilots-files COMMAND /bin/sh -c "if [ '${CMAKE_CURRENT_SOURCE_DIR}' != '${CMAKE_CURRENT_BINARY_DIR}' ]; then /bin/cp -f ${CMAKE_CURRENT_SOURCE_DIR}/cloud_batch_platform.xml ${CMAKE_CURRENT_BINARY_DIR}/cloud_batch_platform.xml ; fi ;" COMMAND /bin/sh -c "if [ '${CMAKE_CURRENT_SOURCE_DIR}' != '${CMAKE_CURRENT_BINARY_DIR}' ]; then /bin/cp -f ${CMAKE_CURRENT_SOURCE_DIR}/1000genome-chameleon-2ch-100k-001.json ${CMAKE_CURRENT_BINARY_DIR}/1000genome-chameleon-2ch-100k-001.json ; fi ;" VERBATIM ) -add_dependencies(examples wrench-example-real-workflow) -add_dependencies(wrench-example-real-workflow wrench-example-real-workflow-files) -add_dependencies(wrench-example-real-workflow wrenchwfcommonsworkflowparser) +add_dependencies(examples wrench-example-real-workflow-vms-and-pilots) +add_dependencies(wrench-example-real-workflow-vms-and-pilots wrench-example-real-workflow-vms-and-pilots-files) +add_dependencies(wrench-example-real-workflow-vms-and-pilots wrenchwfcommonsworkflowparser) if (ENABLE_BATSCHED) - target_link_libraries(wrench-example-real-workflow + target_link_libraries(wrench-example-real-workflow-vms-and-pilots wrench wrenchwfcommonsworkflowparser ${SimGrid_LIBRARY} @@ -28,7 +28,7 @@ if (ENABLE_BATSCHED) ${ZMQ_LIBRARY} ) else() - target_link_libraries(wrench-example-real-workflow + target_link_libraries(wrench-example-real-workflow-vms-and-pilots wrench wrenchwfcommonsworkflowparser ${SimGrid_LIBRARY} diff --git a/examples/workflow_api/real-workflow-example/SimpleWMS.cpp b/examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs/SimpleWMS.cpp similarity index 99% rename from examples/workflow_api/real-workflow-example/SimpleWMS.cpp rename to examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs/SimpleWMS.cpp index c4da8f8ef0..868a5107bb 100755 --- a/examples/workflow_api/real-workflow-example/SimpleWMS.cpp +++ b/examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs/SimpleWMS.cpp @@ -88,7 +88,7 @@ namespace wrench { (e.getCause()->toString().c_str())); continue; } - if (this->abort || this->workflow->isDone()) { + if (this->workflow->isDone()) { break; } } diff --git a/examples/workflow_api/real-workflow-example/SimpleWMS.h b/examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs/SimpleWMS.h similarity index 94% rename from examples/workflow_api/real-workflow-example/SimpleWMS.h rename to examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs/SimpleWMS.h index 9edd1514d0..f69072a6f7 100755 --- a/examples/workflow_api/real-workflow-example/SimpleWMS.h +++ b/examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs/SimpleWMS.h @@ -10,7 +10,7 @@ #ifndef WRENCH_EXAMPLE_SIMPLEWMS_H #define WRENCH_EXAMPLE_SIMPLEWMS_H -#include +#include "wrench-dev.h" namespace wrench { @@ -35,9 +35,6 @@ namespace wrench { private: int main() override; - /** @brief Whether the workflow execution should be aborted */ - bool abort = false; - /** @brief A pilot job that is submitted to the batch compute service */ std::shared_ptr pilot_job = nullptr; /** @brief A boolean to indicate whether the pilot job is running */ diff --git a/examples/workflow_api/real-workflow-example/SimpleWorkflowSimulator.cpp b/examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs/SimpleWorkflowSimulator.cpp similarity index 99% rename from examples/workflow_api/real-workflow-example/SimpleWorkflowSimulator.cpp rename to examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs/SimpleWorkflowSimulator.cpp index 59133ed6bb..50220f7146 100755 --- a/examples/workflow_api/real-workflow-example/SimpleWorkflowSimulator.cpp +++ b/examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs/SimpleWorkflowSimulator.cpp @@ -8,10 +8,10 @@ */ #include -#include +#include "wrench.h" #include "SimpleWMS.h" -#include +#include "wrench/tools/wfcommons/WfCommonsWorkflowParser.h" #include #include diff --git a/examples/workflow_api/real-workflow-example/cloud_batch_platform.xml b/examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs/cloud_batch_platform.xml similarity index 100% rename from examples/workflow_api/real-workflow-example/cloud_batch_platform.xml rename to examples/workflow_api/real-workflow-examples/vms-and-pilot-jobs/cloud_batch_platform.xml