Skip to main content

Simplifies the evaluation of numerical simulation models on high performance computing facilities

Project description

License: LGPL v3

OpenTURNS meets High-Performance Computing

What is othpc?

othpc is a simple Python tool that facilitates the evaluation of numerical models on a SLURM based High-Performance Computing (HPC) facility.

The Python package allows one to apply the Uncertainty Quantification (UQ) methods from OpenTURNS directly on a computationally costly numerical model (e.g., FEM or CFD model) deployed on HPC.

Minimal example

Create a separate script defining your function, here is an example for a script named product_function.py:

# product_function.py
import openturns as ot

class ProductFunction(ot.OpenTURNSPythonFunction):
    def __init__(self):
        super().__init__(2, 1)

    def _exec(self, x):
        return [x[0] * x[1]]

Write the following launching script:

import othpc
import openturns as ot 
from product_function import ProductFunction

ot_product = ProductFunction()
othpc_product = othpc.SubmitFunction(ot_product, ntasks_per_node=3, timeout_per_job=5)
distribution = ot.JointDistribution([ot.Uniform(0., 1.), ot.Normal(0., 1.)])
x_sample = distribution.getSample(12) # Monte Carlo sample with size N=12
y_sample = othpc_product(x_sample) # Submits 4 SLURM jobs, each including a batch of 3 evaluations 
print(y_sample)

Here is the corresponding output:

100%|██████████████████████████████████████████████████████████████████████| 4/4 [00:39<00:00,  9.79s/it]
     [ y0          ]
 0 : [  0.0552903  ]
 1 : [ -0.351668   ]
 2 : [ -0.0928364  ]
 3 : [  0.023483   ]
 4 : [ -0.0724111  ]
 5 : [  0.33814    ]
 6 : [  0.10313    ]
 7 : [  0.332978   ]
 8 : [  0.0561647  ]
 9 : [ -0.00693689 ]
10 : [  0.735135   ]
11 : [  0.107765   ]

Beyond this basic example, the ProductFunction class is meant to be replaced by the execution of a numerical model. The CantileverBeam example illustrates the use of an executable in this context, and exploits most of the services provided by othpc.

Services and utils

Working with othpc simplifies the evaluation of costly numerical models and gives access to the OpenTURNS UQ methods. Among the services possibly provided by the package:

  • Temporary result directory management.
  • Cache mechanism to avoid repeating evaluations.
  • Compatibility with multi-core or multi-node numerical models.
  • Summary csv table presenting the evaluated inputs with their corresponding outputs.

:floppy_disk: How to install?

The package has not been deployed on a downloading platform yet (e.g., pip and conda), to install the current development:

git clone https://github.com/openturns/othpc.git
pip install -e othpc/

Documentation

Package documentation : http://openturns.github.io/othpc/main/

Contributors

Elias Fekhari, Joseph Muré, Julien Schueller, Michaël Baudin, Pascal Borel.

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

othpc-0.1-py3-none-any.whl (49.8 kB view details)

Uploaded Python 3

File details

Details for the file othpc-0.1-py3-none-any.whl.

File metadata

  • Download URL: othpc-0.1-py3-none-any.whl
  • Upload date:
  • Size: 49.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for othpc-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bbc436feef2092c3753c5d12c5914a2d65852c96a55abbb5e035feb4b947a234
MD5 8a7b791c11c653815b8f35a1863a08e4
BLAKE2b-256 c1940d8c4f747264f8cf85355ec54dd693b43b356d2b08799ebaa427f06022db

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page