solving constrained optimization problem for the design of engineering systems
Project description
NoLOAD_Jax: Non Linear Optimization by Automatic Differentiation using Jax
We are happy that you will use or develop the NoLOAD_Jax. It is an Open Source project located on GitLab at https://gricad-gitlab.univ-grenoble-alpes.fr/design_optimization/NoLoad_v2 It aims at solving constrained optimization problem for the design of engineering systems
Project Presentation
NoLOAD_Jax: Please have a look to NoLOAD presentation : https://noload-jax.readthedocs.io/en/latest/
A scientific article presenting NoLOAD is available here:
Agobert Lucas, Hodencq Sacha, Delinchant Benoit, Gerbaud Laurent, Frederic Wurtz, “NoLOAD, Open Software for Optimal Design and Operation using Automatic Differentiation”, OIPE 2020, Poland, 09-2021. https://hal.archives-ouvertes.fr/hal-03352443
Please cite us when you use NoLOAD.
NoLOAD_Jax Community
Please use the git issues system to report an error: https://gricad-gitlab.univ-grenoble-alpes.fr/design_optimization/NoLoad_v2 Otherwise you can also contact the developer team using the following email adress: benoit.delinchant@G2ELab.grenoble-inp.fr
Installation Help
You can install the library as a user or as a developer. Please follow the corresponding installation steps below.
Prerequisite
Please install Python 3.8 or later https://www.python.org/downloads/
Installation as a user
Please install NoLOAD_Jax with pip using the command prompt.
If you are admin on Windows or working on a virtual environment
pip install noloadj
If you want a local installation or you are not admin
pip install --user noloadj
If you are admin on Linux:
sudo pip install noloadj
Launch the examples to understand how the NoLOAD_Jax works:
python noloadj/01-UnconstrainedMonoObjective.py
python noloadj/02-ConstrainedMonoObjective.py
python noloadj/03-ConstrainedMultiObjective.py
python noloadj/04-ConstrainedMonoObjective2.py
Enjoy your time using NoLOAD_Jax !
GPU
As it uses the JAX library, NoLOAD_Jax can run on CPU (Central Processor Unit) or GPU (Graphics Processor Unit), where GPU offers better performances than CPU. On Windows, only CPU can be used. To use GPU you may run NoLOAD on Ubuntu. If you want to use GPU, you need to install CUDA and CuDNN on your computer then write on Pycharm terminal :
pip install --upgrade pip
pip install -U "jax[cuda12_pip]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
If you use GPU, you need to put these lines at the beginning of your "optimization" file to avoid memory issues :
import os
os.environ['XLA_PYTHON_CLIENT_PREALLOCATE']='false'
os.environ['XLA_PYTHON_CLIENT_MEM_FRACTION']='0.50'
To have more information, please have a look to : https://jax.readthedocs.io/en/latest/installation.html
IPOPT Algorithm
NoLOAD_Jax runs with SLSQP optimization algorithm from Scipy. To install IPOPT algorithm, please install an Anaconda environment and run this command on a terminal :
conda install -c conda-forge cyipopt
Library Installation Requirements
Matplotlib >= 3.0 Scipy >= 1.2 Jax >= 0.4.18 Jaxlib >= 0.4.18 Pandas >= 1.3.5 tk >= 0.1.0 openpyxl >= 3.1.2
Main Authors:
B. DELINCHANT, L. GERBAUD, F. WURTZ, L. AGOBERT
Partners:
Vesta-System: http://vesta-system.fr/
Acknowledgments:
Licence
This code is under the Apache License, Version 2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file noloadj-1.3.2.tar.gz
.
File metadata
- Download URL: noloadj-1.3.2.tar.gz
- Upload date:
- Size: 74.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4330a46597b8ad4c0c2f217478c78439a2e93b648a843ee05e2f68fd50a552d |
|
MD5 | c3eca5c89f4fc8fde34e51e5b4e94775 |
|
BLAKE2b-256 | 6660e1f79c089b4eab8a16e29caf8df5e69f5b97366cd44dc8543e1c3c911a9e |
File details
Details for the file noloadj-1.3.2-py3-none-any.whl
.
File metadata
- Download URL: noloadj-1.3.2-py3-none-any.whl
- Upload date:
- Size: 64.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08a2fce0961d5596a0d70f2fd5228eca84b282921ef3fb4ac77bba8d88369971 |
|
MD5 | 9f95576f1bd4e851bfdac8f30aba0f8d |
|
BLAKE2b-256 | e30e24e6a1ede80d4013804902941fa0332ccd2bd3af28063a9d7e159d19d80d |