Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Julia bindings for libroadrunner 2.5.0 #1179

Open
matthiaskoenig opened this issue Jan 28, 2024 · 15 comments
Open

Julia bindings for libroadrunner 2.5.0 #1179

matthiaskoenig opened this issue Jan 28, 2024 · 15 comments

Comments

@matthiaskoenig
Copy link
Collaborator

Hi all,
I am looking for the julia bindings to the latest release.

I only could find the old julia package from Sunny Xu
https://github.com/SunnyXu/RoadRunner.jl

If I use the package I get only the very old version 2.0.3

using RoadRunner
pwd()
print(RoadRunner.getVersionStr())
2.0.3

How can I get the Julia language bindings for the latest version?
I did not see any swig files for Julia in the wrappers?
It would be great if the julia bindings could be updated with the new releases.

Are there some example scripts with Julia somewhere? I could only find the API documentation.

Best Matthias

@SunnyXu
Copy link
Member

SunnyXu commented Jan 29, 2024

Hi Matthias,
For the update, I have tried twice last fall, however, RoadRunner.jl cannot get updated by the old way with binary files due to Julia’s update. Therefore, I am not sure if it is doable unless I could find another way. I will try to look for a new way to do an update once my time is available. If you could find one, please let me know.

For the script example, you could refer to my work on GitHub (https://github.com/sys-bio/artificial_random_signaling_network/blob/develop/Ground_truth_generation.jl). This has not been published but hope it could get published soon.

I will let you know if things change. Have a good one.
Sincerely,
Jin

@matthiaskoenig
Copy link
Collaborator Author

Hi Jin,
I am very interested in running roadrunner in Julia. Ideally with a package which can be installed. Or a simple wrapper around the C++ library. But this must work with the latest release / develop branch.

If anybody has a current roadrunner version running within Julia please let me know how you got this working.
Best Matthias

@hsauro
Copy link

hsauro commented Jan 31, 2024 via email

@matthiaskoenig
Copy link
Collaborator Author

This would be amazing. We want to run large-scale parallel simulations in Julia with roadrunner while putting large matrix operations on the GPU. Julia seems to be ideal for that.

The python parallization is unfortunately not working for us and C++ parallelization is too low level and too much overhead. It seems that we can get the things much easier done in Julia with C++ performance and a simple way to integrate with python via PyCall. I.e. we could just move high performance things to Julia.

For us it would be important to be able to build the roadrunner develop branch for Julia (and if possible have a Julia package for the roadrunner release). Because we need all the bug fixes ;)

@hsauro
Copy link

hsauro commented Jan 31, 2024 via email

@adelhpour
Copy link
Member

I updated Julia bindings for RoadRunner to the latest RoadRunner release (2.5.0). @matthiaskoenig The package is now registered and you can upgrade yours in Julia.

@matthiaskoenig
Copy link
Collaborator Author

@adelhpour Perfect. Works.
Got version 2.5.0 to run and could run simulations and access the results.

[ Info: Precompiling RoadRunner [e916ade1-3a88-4cc2-a33a-2915d20637d9]
[ Info: Skipping precompilation since __precompile__(false). Importing RoadRunner [e916ade1-3a88-4cc2-a33a-2915d20637d9].
┌ Warning: Replacing docs for `RoadRunner.getLastError :: Tuple{}` in module `RoadRunner`
└ @ Base.Docs docs/Docs.jl:243
/home/mkoenig/git/julia_rr/src
roadrunner version:2.5.0
....

Only minor remark. It would be great if you could match the roadrunner version in the language bindings. I.e. the julia package for roadrunner 2.5.0 should be v2.5.0. Then it is always clear which library version is packaged in the Julia bindings.
Can be closed from my side, please add this on your release document so if new releases are done also the Julia bindings are released.

Again. Thanks so much for the fast reply.

@adelhpour
Copy link
Member

adelhpour commented Feb 2, 2024

@matthiaskoenig Great point. I will talk to @SunnyXu so that we change the versioning pattern and make it compatible to the RoadRunner versions.
@luciansmith I think we need to put it somewhere in our release document to make sure Julia bindings always get an update once RoadRunner has a new release.

@SunnyXu
Copy link
Member

SunnyXu commented Feb 2, 2024

@adelhpour Great! It seems Julia register works again with our binary files after their updates. For a version update, please try to update it in the script (https://github.com/sys-bio/RoadRunner.jl/blob/master/Project.toml). It would be good if you could also do an update with the title and git tag, following my previous example (sys-bio/RoadRunner.jl#24). I am current under another grant and dealing with other projects. It would be better for you to update and maintain this.

@adelhpour
Copy link
Member

@SunnyXu Thanks for your help. I will update the version.

@luciansmith
Copy link

@adelhpour We do create the python bindings for roadrunner on Azure; do you think we could create the Julia bindings at the same time?

@adelhpour
Copy link
Member

@luciansmith The main thing we have to do is updating the shared libraries in RoadRunner.jl repo once we have a new RoadRunner release. Maybe we would be better off if we could do it in the Github Actions of RoadRunner.jl and sync it to the RoadRunner releases 🤔

@adelhpour
Copy link
Member

@matthiaskoenig I just updated the RoadRunner.jl repo version to 2.5.0. The registered package is also now have 2.5.0 version.

@matthiaskoenig
Copy link
Collaborator Author

Works. I could install the v2.5.0 Julia package and see the roadrunner 2.5.0 version. Simulations work. Thanks again.

@hsauro
Copy link

hsauro commented Feb 2, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants