-
Notifications
You must be signed in to change notification settings - Fork 2
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
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
A few questions #15
Comments
Hi, thanks for your interest! 1. Task Naming for LoggingOverloading 2. Progress Logging During ExecutionThe recommended way is to use the If you want to estimate the time your sweeps are taking and how long your simulation will take in total, you can do a premature merge ( A more silly approach (I frequently use) is to look at For debugging, I sometimes insert logging into the 3. Manual Binsize for RebinningYou can set a custom rebinning binsize by setting So one possible workflow would be: To avoid setting the rebin_file = "myjob_rebin_lengths.json"
if isfile(rebin_file)
tm.rebin_length = JSON.parsefile(rebin_file)[current_task_name(tm)]
end which is ignored on the first run and then read once you have created it from your fitting script. Let me know if that is an acceptable workflow (or if you have alternative ideas) 4. Bootstrap Resampling in PostprocessingConcerning the Binder cumulant, last time I calculated crossings used parallel tempering enabled (in the old c++ version) I ran into a similar issue and wrote a small script that calculates it via bootstrap from the HDF5 files. Basically, for now, for bootstrapping or more complicated analyses, you need script it yourself to run on the HDF5 files directly. |
Hi, thank you very much for the quick and detailed response - this is very helpful! Given the workflow you suggested, I think the best approach in my case might indeed be to skip the merge step and perform the analysis directly on the HDF5 files in some script, to handle the autocorrelation & bootstrap resampling. Is there a flag or parameter I can set to bypass the built-in analysis and perform only the MC simulation itself? Thanks again for your help! |
Sounds good. Unfortunately, that flag does not exist, but likely the cost of the analysis is negligible compared to the simulation time, so you can probably ignore it for now. On a side note, I just stumbled on Bootstrap.jl which might be useful. If at the end you come up with something that may be useful to other people (either postprocessing logic or proposals for APIs that help working with HDF5 raw data), we can think about integrating it into Carlo somehow. For now I’m opening some separate issues for the points you mentioned. |
Thank you very much, this sounds good! |
Hi! Just a quick following: Thanks a lot for your help! |
The parameters are not saved there. The recommended workflows are either
The second case is helpful when parameters have complicated values that are hard to reconstruct after they have been serialized to JSON. I have enabled the Discussions feature for this repository, as a space to better fit this kind of Q&A topic. Feel free to open a new discussion for a new question. |
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
Hi everyone,
I noticed that parallel tempering is now supported, which is fantastic! I have a few questions about some specific functionalities in the library that I’d love to clarify:
Task Naming for Logging: Is there a way to customize task names based on specific parameter combinations (e.g.,
L
,T
values)? Something like this:(...) task_16_0.5 is done. Merging.
. Would you recommend overloadingCarlo.current_task_name(tm::TaskMaker)
to achieve this?Progress Logging During Execution: Is it possible to log progress for each task while it’s running? I was thinking of inserting logging in
Carlo.measure!(mc::myMC, ctx::MCContext)
, but I’m not sure if that’s the best approach.Manual Binsize for Rebinning: Is it possible to manually set the binsize during postprocessing? For instance, I would like to fit the autocorrelation time for each observable and then set the binsize based on the longest autocorrelation time. Additionally, is there an option to obtain directly resampled values in the merged results without averaging? This would help in further analyses, like calculating crossing points of the Binder cumulant for each sample to estimate error bars.
Bootstrap Resampling in Postprocessing: Finally, can the Bootstrap resampling method be used during postprocessing?
Thanks a lot for your help, and I appreciate all the work that has gone into this project!
The text was updated successfully, but these errors were encountered: