Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.1%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: whybsml
- License: lgpl-3.0
- Language: OCaml
- Default Branch: main
- Size: 221 KB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 2
Metadata Files
README.md
WhyBSML version 0.2
Authors
- Frédéric Loulergue, Université d'Orléans, France
- Olivia Proust, Université d'Orléans, France
Requirements
For the verification part:
- Why3 version 1.7.1
- Alt Ergo 2.5.2
- CVC4 version 1.8
For the compilation part:
Overview
WhyBSML is a formalization of the core module of the BSML library, an OCaml library for scalable parallel computing and a set of verified libraries implemented with this core module.
Usage
In the root directory:
make configgenerates a WhyBSML proof strategy that is then available in WhyIDEmake idelaunches Why3 IDEmake docgenerates the documentation inhtmlit also generates the HTML summary of the verification session inwhy3session.htmlmake benchreplays the verification session (works only if Alt-Ergo V2.5.2 and CVC4 1.8 are installed and Why3 configured to use them)make compilegenerates the OCaml code from the WhyML development and compiles all the dependenciesmake cleanupperforms all of the following:make clean_configremoves the configured strategymake clean_sessionremoves the session directorymake clean_docremoves the generated documentationmake clean_extractionremoves the generated OCaml source code and compile code
Using the applications
The MPS application
In application/mps, mps.byte and mps.native are executable as they are. They compute the maximum prefix sum of a distributed list of integers. They take as argument the size of the randomly generated (distributed) list. If ran directly they run using only one processor. To use several processors, mpirun with option -np is necessary. For example, mpirun -np 400 application/mps.native 1_000_000 runs the (native code version of the) application on a list of one million numbers and will use 400 processors to do so (it is very likely that in this case the machine is a cluster of PCs or another kind of distributed memory machine).
The Average application
In application/average, average.byte and average.native are respectively the executable byte-code and native code versions of a program that computes the average of a distributed list of integers. Their usage is the same as the MPS applications.
The Count application
In application/count, count.byte and count.native are respectively the executable byte-code and native code versions of a program that counts the number of diagonal 50x50 matrices of a distributed list of matrices. Their usage is the same as the MPS applications.
Structure
README.md: this fileLICENSE: the license filebsml.mlw: the formalization of BSML coresequential.mlw: a library of sequential functions (mostly on lists)stdlib.mlw: a verified BSML standard libraryskeletons.mlw: verified map and reduce skeletons for parallel programmingaverage.mlw: verified parallel implementation for the computation of the average of a distributed list of integerscount.mlw: verified parallel implementation of a function counting the number of elements of a distributed list verifying a given predicatemps.mlw: verified sequential and parallel implementations for the maximum prefix sum problemdrivers: Why3 drivers used to extract OCaml code from the.mlwfilesbsml: a parallel implementation of the BSML code module on top of MPIwrapper: the BSML core implementation uses OCaml'sinttype whilebsml.mlwuses WhyML'sinttype which is extracted to the typeZ.t. This wrapper manages the conversions between these two typesextraction: placeholder for the OCaml code extracted from our WhyML development (contains also aMakefile)application/mps: an executable application that calls the parallel maximum parallel prefix sum function on a randomly generated distributed listapplication/average: an executable application that calls the parallel average function on a randomly generated distributed listapplication/count: an executable application that calls the parallel count function on a randomly generated distributed listocamlmake: Ocaml-makefile by Markus Mottl, used for compilation
Owner
- Name: whybsml
- Login: whybsml
- Kind: organization
- Repositories: 1
- Profile: https://github.com/whybsml
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
title: "WhyBSML"
version: "0.2"
authors:
- family-names: Loulergue
given-names: Frédéric
orcid: https://orcid.org/0000-0001-9301-7829
- family-names: Proust
given-names: Olivia
orcid: https://orcid.org/0009-0007-7154-5365
date-released: 2024-05-15
license: LGPL-3.0-only
repository-code: "https://github.com/whybsml/whybsml"
identifiers:
- description: "This is the collection of archived snapshots of all versions of WhyBSML"
type: doi
value: 10.5281/zenodo.11197227
- description: "This is the archived snapshot of version 0.1 of WhyBSML"
type: doi
value: 10.5281/zenodo.8166092
- description: "This is the archived snapshot of version 0.2 of WhyBSML"
type: doi
value: 10.5281/zenodo.11197228
GitHub Events
Total
- Push event: 1
Last Year
- Push event: 1