- Unofficial JuliaLang interface of MONOlithic LInear equation Solvers for Highly-parallel architecture a.k.a monolish with CxxWrap.jl
| gomalish | monolish | julia |
|---|---|---|
| 0.2.0 | 0.15.0 | 1.6.3 |
| 0.2.1 | 0.15.1 | 1.6.5 |
| 0.2.2 | 0.15.2 | 1.6.5 |
| 0.3.0 | 0.15.2 | 1.7.1 |
| 0.3.1 | 0.15.3 | 1.7.1 |
| 0.4.0 | 0.16.1 | 1.7.3 |
| 0.4.1 | 0.16.2 | 1.7.3 |
| 0.4.2 | 0.16.3 | 1.7.3 |
| 0.5.0 | 0.16.3 | 1.8.0 |
This project is under construction. You will find that the development of this project requires at least a high level of C++ reading, writing, and design skills than I have. If you are an expert C++ programmer, you will notice that there is a lot of room for improvement in this project e.g.:
- How to write/design a more sophisticated and professional C++ codes including
CMakefilethat help to wrap monolish API.- Should I create Julia module for each
monolish::<blah-blah-namespace>?. Technically we could do ofc, but does it privide a good interfeace for Julian? Idk.
- Should I create Julia module for each
- Type conversion between Julia and C++, design.
- Format C++ code
$ git clone https://github.com/AtelierArith/gomalish && cd gomalish
$ make # to build Docker image
$ docker-compose run --rm julia julia -e 'using Pkg; Pkg.build(); Pkg.test()'- Let's clone this repository via:
$ git clone https://github.com/AtelierArith/gomalish
$ cd gomalish- Execute
makecommand to build an Docker image fromDockerfilewe've prepared.
$ make- Open a Docker container via:
$ docker-compose run --rm julia bash
root@gomagoma99:/work#In the following, we will assume we are living in the docker container with prompt root@gomagoma99:/work#. It is a good idea to view our code on VSCode with Visual Studio Code Remote - Containers.
- To build a shared library
libgomalish.so, cddepsdirectory and executemake.
root@gomagoma99:/work# cd deps
root@gomagoma99:/work/deps# makeYou'll find work/deps/build/lib/libgomalish.so. Our repository gomalish provides C++ codes that wrap monolish API. See deps/monolish_<xxxx>.cpp, deps/monoish_module.hpp, deps/CMakeFiles to learn more. If you modified these C++ codes, please re-run make -C /work/deps again.
- Let's call monolish API from Julia! Lots of examples are stored in
/work/tests/runtests.jl. The following command will run the tests for our packageGomalish.jl.
root@gomagoma99:/work# julia -e 'using Pkg; Pkg.test()'However, it is recommended to run tests on Pkg mode:
root@gomagoma99:/work# julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.7.3 (2022-05-06)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
julia> # press ]
julia> ]
(Gomalish) pkg>
(Gomalish) pkg> # This is the Pkg REPL. Let's enter `test` to run tests
(Gomalish) pkg> test
# some staff happens ...Congrats! You have a complete understanding of Gomalish.jl.
To move on to the next step, we recommend to take a look at these materials: