-
Notifications
You must be signed in to change notification settings - Fork 8
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
More frameworks and model parameter settings? #46
Comments
More frameworks are super welcomed, provided that it is possible to run them on CI (which I guess with Rust shouldn't be a problem). Plotting things as line is also great. What we feel is best is to find a solution to save the CSV file of all benchmarks somehow during CI runs (which we haven't figured out yet). Once we have a saved CSV file, not only we have a history of runs from previously tagged editions, but we can also present the output however we wish, e.g., tables or lines. If you or someone else wants to put together a PR that adds krABMaga for at least one model, and adds CI runs for it that would be great! |
p.s.: 100k agents sounds really high though to do with all frameworks within CI time. I wouldn't be so sure that this is something possible to do with NetLogo during the CI limiting time (I think 6hrs? @Tortar knows better). Is it necessary to go so high? If you are looking for scaling with number of agents, going from 10^2 to 10^4 or 10^5 would anyways reveal the scaling. |
These perhaps could be useful (but I'm not certain)?
Unfortunately I've got zero experience with Rust. Perhaps @Tortar or @rht would like to give a try? |
Probably the developers of the software itself are the most knowledgeable of rust CI to do this! |
The big constraint is that to be able to run all models on the same machine we should run all jobs for a model in the same workflow, so we have a 6hrs limit for each model to run all the tests as @Datseris correctly noticed. I'd also like to stay inside the 3hrs limit at maximum for now so that if new frameworks join the comparison we can have time also for them. So we can do something like this I think to improve the matter:
And surely it would be cooler to have lines at some point, but we first need to store persistently the results in a place different from CI log. Also notice that in the benchmarks on the webpage you linked @wang-boyu the results for Agents.jl are wrong since the setup is not correct, and besides the version used of each frameworks is not specified so we can't even say anything anyway since for example many things in Agents.jl became faster in newer releases. |
The artifact is only stored up to 90 days. A solution that could work is to create another Git repo as a storage, configure this repo (by adding personal access token of that storage repo to this repo's secret), then push the benchmark result to the storage repo. Regarding with setting up krABMaga, their benchmark repo has the models code and instruction to run them, which is an optimum way to run the code. There is hopefully no distortion in benchmark result when ported, but we could ping the krABMaga devs when the PR is ready. |
There is a Rust ABM framework named krABMaga and I wonder how Agents.jl performs as compared to it. They have implemented the example models used here in their examples repo.
They also have frameworks comparisons similar to yours (code and webpage). In their comparison, the models were run with more number of agents settings, from 1k, 2k, up to 100k.
So instead of the table shown here, would it be better to have more model runs and plot all results as lines? Similar to what krABMaga has in their website but with lines instead of points.
I noticed that the github workflow takes much time to run, so this might be a bottleneck.
cc @rht
The text was updated successfully, but these errors were encountered: