Hello, 

We are trying to have a reproducible workflow for usage in reinforcement 
learning. To test the reproducibility, we use a guix shell container with fixed 
commits through the following command 

guix time-machine --channels=channels_file -- shell -C -L ../ 
python-stable-baselines3 python-mujoco python-gymnasium python python-imageio 
-- python sb3.py 

The channel with package declaration is here: [ 
https://gitlab.inria.fr/tmathieu/guix-rl | 
https://gitlab.inria.fr/tmathieu/guix-rl ] and the channels file used to fix 
dependencies from guix and guix-science is here: [ 
https://gitlab.inria.fr/tmathieu/guix-rl/-/blob/main/tests/channels_file | 
https://gitlab.inria.fr/tmathieu/guix-rl/-/blob/main/tests/channels_file ] . 

Doing so, we noticed that the results were indeed reproducible between two 
Ubuntu computer (one is a laptop, the other a server). However, when trying the 
exact same command with the exact same channels file (with fixed commit) on 
some Arch-Linux laptop, the result was different. We did the test on two Arch 
laptops and the results were are reproducible but with a different value from 
the Ubuntu ones. All the considered laptops and servers have different kernel 
but this doesn't seem to be the problem because Ubuntu is reproducible with 
Ubuntu and Arch reproducible with Arch. 
Moreover, the difference is not small, which is weird because in the script we 
fix the random seed. Do you have any idea why there is a difference? 

I know about python, but I am not an expert in Linux OS/kernel, and I am really 
not sure what in the difference of OS could impact the result even though guix 
shell container are used. 

Thanks, 
Timothée 

Reply via email to