Skip to content

Conversation

@Samuel-amap
Copy link
Collaborator

No description provided.

…mesteps handled, but bad meshing with refvalue/refvectors cause overwrites if we use multiscale mappings, and unexplored issues if we avoid them. Also, many-node to many-node issues if multiscale mapping. Some TODO comments, structs, commented out code and notes are outdated. More exploration and cleanup required, but current state is much more interesting than the previous commit.
@Samuel-amap
Copy link
Collaborator Author

Samuel-amap commented Oct 28, 2025

Note : My local branch for multi-timestep prototyping is pointing to this branch, which, uh, isn't normal. In the process, I deleted another related pull request which had a comment you can find here : #164

I thought I'd fixed it earlier. Will look into patching up the branch names later.

Current prototype state :

Multiple timesteps handled, but bad meshing with refvalue/refvectors cause overwrites if we use multiscale mappings, and unexplored issues if we avoid them.
Also, many-node to many-node issues if multiscale mapping.
Some TODO comments, structs, commented out code and notes are outdated.

If we make timestep mappings not use the scale mapping codepaths, then we need to remove the timestep-mapped variables from vars_need_init and add an extra stage when the dependency graph is created to create additional links between timestep-mapped softdependency nodes and then see what other issues might arise. I think they would also need to be removed from the scale mapping if some of them are multi-scale, which might be fiddly. I haven't experimented with that yet.

More exploration and cleanup required, but current state is much more interesting than the previous commit. I also expect many of the existing tests to work properly with the new timestep-handling branches enabled, though I might have some unintentional breaking API changes. XPalm tests report a version incompatibilty, so they aren't actually running.

@github-actions
Copy link
Contributor

github-actions bot commented Oct 28, 2025

Benchmark Results (Julia v1)

Time benchmarks
main 2ee5f85... main / 2ee5f85...
bench_linux/PBP 17.1 ± 2.1 ms 17.9 ± 2.1 ms 0.955 ± 0.16
bench_linux/PBP_multiple_timesteps_MT 0.304 ± 0.008 s 0.315 ± 0.01 s 0.965 ± 0.041
bench_linux/PBP_multiple_timesteps_ST 0.213 ± 0.029 s 0.221 ± 0.036 s 0.966 ± 0.2
bench_linux/PSE 4.32 ± 0.53 s 4.6 ± 0.55 s 0.941 ± 0.16
bench_linux/XPalm_convert_outputs 0.759 ± 0.086 s 0.794 ± 0.086 s 0.956 ± 0.15
bench_linux/XPalm_run 54.8 ± 16 s 55.4 ± 17 s 0.988 ± 0.42
bench_linux/XPalm_setup 16.1 ± 1.2 ms 15.8 ± 0.91 ms 1.02 ± 0.094
time_to_load 3.2 ± 0.0045 s 3.21 ± 0.0091 s 0.996 ± 0.0032
Memory benchmarks
main 2ee5f85... main / 2ee5f85...
bench_linux/PBP 0.0911 M allocs: 5.48 MB 0.0911 M allocs: 5.49 MB 0.999
bench_linux/PBP_multiple_timesteps_MT 3.97 M allocs: 0.746 GB 3.97 M allocs: 0.746 GB 1
bench_linux/PBP_multiple_timesteps_ST 3.5 M allocs: 0.239 GB 3.5 M allocs: 0.239 GB 1
bench_linux/PSE 0.0498 G allocs: 2.31 GB 0.0501 G allocs: 2.38 GB 0.97
bench_linux/XPalm_convert_outputs 6.62 M allocs: 0.436 GB 6.62 M allocs: 0.436 GB 1
bench_linux/XPalm_run 0.573 G allocs: 28.9 GB 0.58 G allocs: 30.3 GB 0.954
bench_linux/XPalm_setup 0.165 M allocs: 8.87 MB 0.165 M allocs: 8.87 MB 1
time_to_load 0.149 k allocs: 11.1 kB 0.149 k allocs: 11.1 kB 1

…imestep-mapped variables from their source, to avoid overwriting source (inputs to non-default-timestep models are changed by the accumulation function so can't be a simple Ref to source)
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

Successfully merging this pull request may close these issues.

2 participants