https://github.com/powsybl/powsybl-hpc
High Performance Computing modules for powsybl
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.6%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
High Performance Computing modules for powsybl
Basic Info
- Host: GitHub
- Owner: powsybl
- License: mpl-2.0
- Language: Java
- Default Branch: main
- Homepage: https://www.powsybl.org
- Size: 540 KB
Statistics
- Stars: 2
- Watchers: 15
- Forks: 0
- Open Issues: 10
- Releases: 16
Topics
Metadata Files
README.md
PowSyBl HPC
PowSyBl (Power System Blocks) is an open source framework written in Java, that makes it easy to write complex software for power systems’ simulations and analysis. Its modular approach allows developers to extend or customize its features.
PowSyBl is part of the LF Energy Foundation, a project of The Linux Foundation that supports open source innovation projects within the energy and electricity sectors.
Read more at https://www.powsybl.org !
This project and everyone participating in it is governed by the PowSyBl Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to powsybl-tsc@lists.lfenergy.org.
Environment requirements
The project contains both Java and C++ modules. If you are only interested in the Slurm computation manager, you can build the Java part only. If you're also interested in the MPI computation manager, you need to compiler C++ modules also.
To build the Java modules, you need the following requirements: - JDK (17 or greater) - Maven (3.8.0 or greater) - you could use the embedded maven wrapper instead if you prefer (see Using Maven Wrapper)
$> yum install java-17-openjdk maven
To build the C++ modules, you need the additional requirements: - CMake (2.6 or greater) - A recent C++ compiler (GNU g++ or Clang) - OpenMPI (1.8.3 or greater) - Some development packages (zlib, bzip2)
$> yum install bzip2 bzip2-devel cmake gcc-c++ make wget zlib-devel
OpenMPI
In order to support the MPI modules, you need to compile and install the OpenMPI library.
$> wget https://download.open-mpi.org/release/open-mpi/v1.8/openmpi-1.8.3.tar.bz2
$> tar xjf openmpi-1.8.3.tar.bz2
$> cd openmpi-1.8.3
$> ./configure --prefix=<INSTALL_DIR> --enable-mpi-thread-multiple
$> make install
$> export PATH=$PATH:<INSTALL_DIR>/bin
$> export LD_LIBRARY_PATH=<INSTALL_DIR>/lib:$LD_LIBRARY_PATH
Build
Simple Java Build
If you are interested in the Slurm computation manager only, you can easily compile the project using the following command:
$> mvn package
Full Build
We provide a toolchain to help people to build this project. This toolchain downloads thirdparties (boost, libarchive,
log4cpp, protobuf) from the Intenet, compiles both Java and C++ modules and create an iTools distribution. It's a
standalone external folder that contains all the built objects required to run powsybl programs through the itools
command-line interface. This repository contains the install.sh script to do so easily. By default, the install.sh
will download dependencies from the Internet, compile code and finally copy the resulting iTools distribution to the
installation folder.
$> ./install.sh
This will run both the C++ build and the java build and copy their results to the installation folder.
A more detailed description of the install.sh script options follows:
Targets
| Target | Description | | ------ | ----------- | | clean | Clean modules | | clean-thirdparty | Clean the thirdparty libraries | | compile | Compile modules | | package | Compile modules and create a distributable package | | install | Compile modules and install it | | docs | Generate the documentation (Doxygen/Javadoc) | | help | Display this help |
Options
The install.sh script options are saved in the install.cfg configuration file. This configuration file is loaded and updated each time you use the install.sh script.
Global options
| Option | Description | Default value | | ------ | ----------- | ------------- | | --help | Display this help | | | --prefix | Set the installation directory | $HOME/powsybl | | --mvn | Set the maven command to use | mvn |
Third-parties
| Option | Description | Default value | | ------ | ----------- | ------------- | | --with-thirdparty | Enable the compilation of thirdparty libraries | | | --without-thirdparty | Disable the compilation of thirdparty libraries | | | --thirdparty-prefix | Set the thirdparty installation directory | $HOME/powsyblthirdparty | | --thirdparty-download | Sets false to compile thirdparty libraries from a local repository | true | | --thirdparty-packs | Sets the thirdparty libraries local repository | $HOME/powsyblpacks |
Default configuration file
```
-- Global options --
powsybl_prefix=$HOME/powsybl
-- Thirdparty libraries --
thirdpartybuild=true thirdpartyprefix=$HOME/powsyblthirdparty thirdpartydownload=true thirdpartypacks=$HOME/powsyblpacks ```
Using Maven Wrapper
If you don't have a proper Maven installed, you could use the Apache Maven Wrapper scripts provided. They will download a compatible maven distribution and use it automatically.
Configuration
Configure the access to the maven distributions
In order to work properly, Maven Wrapper needs to download 2 artifacts: the maven distribution and the maven wrapper distribution. By default, these are downloaded from the online Maven repository.
Internet access authentication
If your internet access requires a Basic Authentication, you should define the following variables in your environment:
- MVNW_USERNAME: the username;
- MVNW_PASSWORD: the password.
Using a Maven Repository Manager
If you prefer to use an internal Maven Repository Manager, you should define the following variable in your environment:
- MVNW_REPOURL: the URL to your repository manager (for instance https://my_server/repository/maven-public)
Note that if you need to use this variable, it must be set for each maven command. Else, the Maven Wrapper will try to retrieve the maven distribution from the online Maven repository (even if one was already downloaded from another location).
Checking your access configuration
You could check your configuration with the following command:
shell
./mvnw -version
If you encounter any problem, you could specify MVNW_VERBOSE=true and relaunch the command to have
further information.
Configuring install.sh to use maven wrapper
To indicate install.sh to use Maven Wrapper, you need to configure it with the --mvn option:
shell
./install.sh clean --mvn ./mvnw
You can revert this configuration with the following command:
shell
./install.sh clean --mvn mvn
Usage
Once the configuration is done, you just need to use ./mvnw instead of mvn in your commands.
Owner
- Name: PowSyBl
- Login: powsybl
- Kind: organization
- Website: https://www.powsybl.org
- Repositories: 40
- Profile: https://github.com/powsybl
Power System Blocks
GitHub Events
Total
- Create event: 16
- Issues event: 1
- Release event: 3
- Delete event: 14
- Member event: 1
- Issue comment event: 28
- Push event: 27
- Pull request review comment event: 3
- Pull request review event: 18
- Pull request event: 29
Last Year
- Create event: 16
- Issues event: 1
- Release event: 3
- Delete event: 14
- Member event: 1
- Issue comment event: 28
- Push event: 27
- Pull request review comment event: 3
- Pull request review event: 18
- Pull request event: 29
Committers
Last synced: over 2 years ago
Top Committers
| Name | Commits | |
|---|---|---|
| Mathieu BAGUE | m****e@r****m | 18 |
| yichen88 | 3****8 | 15 |
| Sylvain Leclerc | s****c@r****m | 8 |
| HARPER Jon | j****7@g****m | 2 |
| dependabot[bot] | 4****] | 1 |
| RALAMBOTIANA MIORA | m****a@r****m | 1 |
| Coline Piloquet | 5****t | 1 |
| Paul Bui-Quang | b****l@g****m | 1 |
| walid-sahnoun | w****n@r****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 9 months ago
All Time
- Total issues: 12
- Total pull requests: 114
- Average time to close issues: 3 months
- Average time to close pull requests: 2 months
- Total issue authors: 4
- Total pull request authors: 14
- Average comments per issue: 0.58
- Average comments per pull request: 0.94
- Merged pull requests: 90
- Bot issues: 0
- Bot pull requests: 7
Past Year
- Issues: 2
- Pull requests: 27
- Average time to close issues: 2 days
- Average time to close pull requests: 6 days
- Issue authors: 2
- Pull request authors: 3
- Average comments per issue: 0.5
- Average comments per pull request: 0.93
- Merged pull requests: 24
- Bot issues: 0
- Bot pull requests: 2
Top Authors
Issue Authors
- sylvlecl (8)
- yichen88 (2)
- rolnico (1)
- ari-stark (1)
Pull Request Authors
- rolnico (47)
- yichen88 (23)
- mathbagu (14)
- sylvlecl (10)
- dependabot[bot] (7)
- jonenst (2)
- miovd (2)
- capyq (2)
- EtienneLt (2)
- Walid-Sahnoun (1)
- colinepiloquet (1)
- So-Fras (1)
- etiennehomer (1)
- pl-buiquang (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 5
- Total downloads: unknown
-
Total dependent packages: 4
(may contain duplicates) -
Total dependent repositories: 1
(may contain duplicates) - Total versions: 91
repo1.maven.org: com.powsybl:powsybl-computation-slurm
A computation manager implementation to run computations using Slurm resource manager
- Homepage: http://www.powsybl.com
- Documentation: https://appdoc.app/artifact/com.powsybl/powsybl-computation-slurm/
- License: Mozilla Public License, Version 2.0
-
Latest release: 3.5.0
published 9 months ago
Rankings
repo1.maven.org: com.powsybl:powsybl-computation-mpi
A computation implementation to run computations with MPI
- Homepage: http://www.powsybl.com
- Documentation: https://appdoc.app/artifact/com.powsybl/powsybl-computation-mpi/
- License: Mozilla Public License, Version 2.0
-
Latest release: 3.5.0
published 9 months ago
Rankings
repo1.maven.org: com.powsybl:powsybl-computation-slurm-test
Run tests for slurm computation manager
- Homepage: http://www.powsybl.com
- Documentation: https://appdoc.app/artifact/com.powsybl/powsybl-computation-slurm-test/
- License: Mozilla Public License, Version 2.0
-
Latest release: 3.5.0
published 9 months ago
Rankings
repo1.maven.org: com.powsybl:powsybl-hpc
C++ and Java modules for high performance computing
- Homepage: http://www.powsybl.com
- Documentation: https://appdoc.app/artifact/com.powsybl/powsybl-hpc/
- License: Mozilla Public License, Version 2.0
-
Latest release: 3.5.0
published 9 months ago
Rankings
repo1.maven.org: com.powsybl:powsybl-distribution-hpc
powsybl-hpc distribution module
- Homepage: http://www.powsybl.com
- Documentation: https://appdoc.app/artifact/com.powsybl/powsybl-distribution-hpc/
- License: Mozilla Public License, Version 2.0
-
Latest release: 3.5.0
published 9 months ago
Rankings
Dependencies
- com.google.auto.service:auto-service
- com.google.protobuf:protobuf-java
- com.powsybl:powsybl-computation
- com.powsybl:powsybl-tools
- joda-time:joda-time
- com.google.jimfs:jimfs test
- junit:junit test
- org.slf4j:slf4j-simple test
- com.jcraft:jsch
- com.pastdev:jsch-extension
- com.pastdev:jsch-nio
- com.powsybl:powsybl-commons
- com.powsybl:powsybl-computation
- commons-io:commons-io
- org.apache.commons:commons-exec
- com.google.jimfs:jimfs test
- junit:junit test
- org.assertj:assertj-core test
- org.mockito:mockito-all test
- org.slf4j:slf4j-simple test
- ${project.groupId}:powsybl-computation-slurm ${project.version} test
- ch.qos.logback:logback-classic test
- com.powsybl:powsybl-commons test
- com.powsybl:powsybl-computation test
- junit:junit test
- org.assertj:assertj-core test
- ${project.groupId}:powsybl-computation-mpi ${project.version}
- ${project.groupId}:powsybl-computation-slurm ${project.version}
- ch.qos.logback:logback-classic
- com.powsybl:powsybl-computation-local ${powsyblcore.version}
- com.powsybl:powsybl-core 4.1.2 import
- com.google.protobuf:protobuf-java 2.5.0
- com.jcraft:jsch 0.1.54
- com.pastdev:jsch-extension 0.1.10
- com.pastdev:jsch-nio 1.0.13
- joda-time:joda-time 2.9.7
- org.apache.commons:commons-exec 1.3
- org.mockito:mockito-all 1.10.19 test
- actions/checkout v1 composite
- actions/setup-java v1 composite