У меня есть код, который выполняется долго, дольше, чем максимально допустимое время ожидания в кластере. Он основан на rand (), поэтому для запуска кода в нескольких последовательностях в кластере я использую
julia> r = copy(Random.GLOBAL_RNG)
для захвата состояния глобального генератора случайных чисел в конце цикла. Мне нужно сохранить 'r' в файл, а затем прочитать эту переменную из файла при запуске следующего запуска в кластере - по сути, чтобы иметь возможность "подобрать то, что я остановил". Когда я пытаюсь (используя пакет DelimitedFiles):
julia> writedlm("rngState.bin",r)
, однако, я получаю следующую ошибку
ERROR: MethodError: no method matching iterate(::MersenneTwister)
Closest candidates are:
iterate(::Core.SimpleVector) at essentials.jl:568
iterate(::Core.SimpleVector, ::Any) at essentials.jl:568
iterate(::ExponentialBackOff) at error.jl:199
, которая заставляет меня поверить, что состояние Mersenne Twister rng нечто-то, что может быть записано в файл. Это верно? Кто-нибудь знает, как я могу сохранить состояние GLOBAL_RNG в файл, чтобы я мог прочитать его позже, чтобы узнать, где я остановился?