unofficial mirror of guix-science@gnu.org 
 help / color / mirror / Atom feed
From: Emmanuel Medernach <Emmanuel.Medernach@iphc.cnrs.fr>
To: Simon Tournier <zimon.toutoune@gmail.com>, guix-science@gnu.org
Subject: Re: Problem with guix copy
Date: Mon, 25 Mar 2024 11:13:00 +0100	[thread overview]
Message-ID: <2527dd6a-854a-4ed2-990e-c337e6a18243@iphc.cnrs.fr> (raw)
In-Reply-To: <87il1ftehd.fsf@gmail.com>


Le 21/03/2024 à 23:19, Simon Tournier a écrit :
> Hi Emmanuel,
>
> On mar., 19 mars 2024 at 16:40, Emmanuel Medernach <Emmanuel.Medernach@iphc.cnrs.fr> wrote:
>
>> Machine_A # guix time-machine -q -C ~/.config/guix/channels.scm -- build
>> --no-grafts tensorflow -d
>> /gnu/store/s6fm43503ra6yxclqvk80gfiw4zxbp91-tensorflow-2.13.1.drv
>>
>> Machine_A # md5sum
>> /gnu/store/s6fm43503ra6yxclqvk80gfiw4zxbp91-tensorflow-2.13.1.drv
>> c7833f974f217ada62b3eb6cdccee11f
>> /gnu/store/s6fm43503ra6yxclqvk80gfiw4zxbp91-tensorflow-2.13.1.drv
>>
>> Machine_B # guix time-machine -q -C ~/.config/guix/channels.scm -- build
>> --no-grafts tensorflow -d
>> /gnu/store/s6fm43503ra6yxclqvk80gfiw4zxbp91-tensorflow-2.13.1.drv
>>
>> Machine_B # md5sum
>> /gnu/store/s6fm43503ra6yxclqvk80gfiw4zxbp91-tensorflow-2.13.1.drv
>> c7833f974f217ada62b3eb6cdccee11f
>> /gnu/store/s6fm43503ra6yxclqvk80gfiw4zxbp91-tensorflow-2.13.1.drv
> The 2 derivations are the exact same.  Since they build tensorflow
> without grafts, it means the issue comes from grafts, no?
>
>
>> Machine_A # guix package --list-installed | grep tensorflow
>> tensorflow              2.13.1          out
>> /gnu/store/jghvlb5dz4sy1p0cd1qx552r1ldj33wi-tensorflow-2.13.1
> This information is useless, I think.  What is needed is the derivation
> for grafting.  Something like:
>
> Machine_A# guix time-machine -q -C ~/.config/guix/channels.scm -- build tensorflow -d
>
>
>
>> Machine_B # guix copy --from=<Machine_A> tensorflow --dry-run
> […]
>> /gnu/store/4g2whbzgn5nqs55x9iqgg23jdapf1srk-tensorflow-2.13.1.drv
> [...]
>
>> Without dry-run he would try to recompile tensorflow on Machine_B which
>> results in a memory crash.
> Yeah, that’s expected because it needs the non-grafted item.
>
>
>> Why 'guix copy' derivation is
>> /gnu/store/4g2whbzgn5nqs55x9iqgg23jdapf1srk-tensorflow-2.13.1.drv
>> instead of
>> /gnu/store/s6fm43503ra6yxclqvk80gfiw4zxbp91-tensorflow-2.13.1.drv ?
> Well, on Machine_A, these
>
>      # guix build tensorflow -d --without-grafts
>      # guix build tensorflow -d
>
> should produce two different derivations.  Right?  On my machine, I get:
>
> --8<---------------cut here---------------start------------->8---
> $ guix time-machine -q -C channels.scm -- build tensorflow@2 -d --no-grafts -n
>    /gnu/store/s6fm43503ra6yxclqvk80gfiw4zxbp91-tensorflow-2.13.1.drv
>
> $ guix time-machine -q -C channels.scm -- build tensorflow@2 -d -n
>    /gnu/store/4g2whbzgn5nqs55x9iqgg23jdapf1srk-tensorflow-2.13.1.drv
> --8<---------------cut here---------------end--------------->8---
>
>
> What does “guix copy --no-grafts”?
>
>
> Well, to be sure we are on the same wavelength: there are 4 derivations,
>
>   + Machine_A: the real build (--no-grafts) and the grafted
>   + Machine_B: idem and idem
>
> So the debug seems:
>
>   + check the no-grafts derivations are the same on both machines
>   + check the grafted derivations are the same on both machines
>   + check that “guix copy” copy both (no-grafts and grafted)
>
> Emacs provides a mode for easing the manipulation of derivation and
> Scheme builder files.  If you do not use Emacs, “guix gc” can be helpful
> for tracking the derivations, I guess.

Hi Simon,

Here are the results:

Machine_A # guix time-machine -q -C ~/.config/guix/channels.scm -- build 
tensorflow -d --no-grafts
/gnu/store/s6fm43503ra6yxclqvk80gfiw4zxbp91-tensorflow-2.13.1.drv

Machine_A # guix time-machine -q -C ~/.config/guix/channels.scm -- build 
tensorflow --no-grafts
/gnu/store/3mq3q11ripx53xg60shbshk7cr470yfx-tensorflow-2.13.1
/gnu/store/qc234r07i3ndgrpa0fdkpkbg4d20h7i1-tensorflow-2.13.1-python

Machine_A # guix time-machine -q -C ~/.config/guix/channels.scm -- build 
tensorflow -d
/gnu/store/vivxpmrpkh1wq5pnw28vq9c51qd3vwf6-tensorflow-2.13.1.drv

Machine_A # guix time-machine -q -C ~/.config/guix/channels.scm -- build 
tensorflow
/gnu/store/jghvlb5dz4sy1p0cd1qx552r1ldj33wi-tensorflow-2.13.1
/gnu/store/1pzdf2rfifgwdw92g8438mhqvzx948s5-tensorflow-2.13.1-python

For  all  of  this  store elements  guix  copy  on
Machine B  tried to recompile tensorflow.  I ended
up  to copy  the whole  profile, this  copy worked
fine:

Machine_B # guix copy --from=MachineA /gnu/store/...-profile
Machine_B # guix package --list-installed | grep tensorflow
tensorflow              2.13.1          out 
/gnu/store/3mq3q11ripx53xg60shbshk7cr470yfx-tensorflow-2.13.1

For now I will copy whole profile instead of store
elements.

Thanks for your help,

Cheers,

Emmanuel

> Cheers,
> simon


  reply	other threads:[~2024-03-25 10:13 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-15  9:14 Problem with guix copy Emmanuel Medernach
2024-03-15  9:21 ` Emmanuel Medernach
2024-03-15 13:58   ` Emmanuel Medernach
2024-03-15 14:10     ` Andreas Enge
2024-03-15 14:37       ` Emmanuel Medernach
2024-03-15 14:50         ` Emmanuel Medernach
2024-03-19 10:26 ` Simon Tournier
2024-03-19 15:40   ` Emmanuel Medernach
2024-03-19 15:51     ` Emmanuel Medernach
2024-03-21 22:19     ` Simon Tournier
2024-03-25 10:13       ` Emmanuel Medernach [this message]
2024-03-27 13:05 ` Simon Tournier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2527dd6a-854a-4ed2-990e-c337e6a18243@iphc.cnrs.fr \
    --to=emmanuel.medernach@iphc.cnrs.fr \
    --cc=guix-science@gnu.org \
    --cc=zimon.toutoune@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).