- 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
CMakefile
that 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
make
command to build an Docker image fromDockerfile
we'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
, cddeps
directory and executemake
.
root@gomagoma99:/work# cd deps
root@gomagoma99:/work/deps# make
You'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: