[petsc-dev] Making a PetSc Roll and Rocks Module

Barry Smith bsmith at mcs.anl.gov
Thu Jan 24 12:51:09 CST 2013



Begin forwarded message:

> From: Philip Papadopoulos <philip.papadopoulos at gmail.com>
> Subject: Re: [petsc-maint #149715] Making a PetSc Roll and Rocks Module
> Date: January 24, 2013 9:48:36 AM CST
> To: "Schneider, Barry I." <bschneid at nsf.gov>
> Cc: Barry Smith <bsmith at mcs.anl.gov>
> 
> Dear Barry^2,
> 
> The major observation about the build process is that building the software so that it can livesw-
> in a standard OS package is more work than it should be. Here is the standard "meme".
> Suppose you have three directories:
> sw-src
> tmpoot/sw-install
> sw-install
> 
> sw-src: the source directory tree for building the sw package (eg petsc-3.3-p5)
> sw-install:  the directory where one wants sw installed on the final system. We use something 
>                  like /opt/petsc/compiler/mpi/interconnect/petsc-version/petsc-arch
> 
> the last directory is an artifact of the way many people build software for packaging. Instead of
> installing into sw-install directly, you install into a tmproot/sw-install.  Then you direct the package
> manager to grab all files in tmproot/sw-install to put in the package.  The package itself will
> strip off the tmproot leading directory. In other words the package labels all files as sw-install/.
> 
> So the build issue that I ran into is that the build directory and/or the tmproot directory path becomes embedded into a large number of files (include files, mod files, etc). To get around this,
> I did a bind mount of (tmproot/sw-install --> /sw-install) and told petsc to install into /sw-install.  I consider that to be a "hack", but petsc isn't the only software that I've run into that requires this
> mounting bit of legerdemain. 
> 
> Many software packages will support a dest=  or DESTDIR variable for "make install"  that supports the "installation" into a tmproot directory but leaves no trace of tmproot in any of its configuration files. (http://git.rocksclusters.org/cgi-bin/gitweb.cgi?p=core/python/.git;a=blob;f=src/python-2/Makefile;h=ced6cc1c6eb6a4f70dd0f3e1b0ccd1ac1e40f989;hb=HEAD)  shows a Makefile for python that supports this.
> 
> Ultimately we create packages of software to simplify a number of things. Including update of installed software on many machines. 
> 
> The other "issue" is not really an issue, but a request. When petsc is built it creates a petscvariables (or similarly named) file with lots of environment variables.  It would be terrific if it could also create  an environment modules files with this same information.  Users often want different versions/different configs of the same software and environment modules is now standard in Redhat/CentOS distributions.
> 
> Hope this helps.
> 
> 
> On Thu, Jan 24, 2013 at 2:44 AM, Schneider, Barry I. <bschneid at nsf.gov> wrote:
> Barry,
> I am sending this to Phil Papadopoulos and he can make much more precise recommendations.  Glad you have thick skins.  Being at NSF requires the same physiology.
> 
> -----Original Message-----
> From: Barry Smith [mailto:bsmith at mcs.anl.gov]
> Sent: Wednesday, January 23, 2013 10:19 PM
> To: Schneider, Barry I.
> Subject: Re: [petsc-maint #149715] Making a PetSc Roll and Rocks Module
> 
> 
>    Barry,
> 
>    By far the most common email we get is regarding installation, so we are always trying to understand how to improve that process. If we can eliminate just 20 percent of installation problems that would save us a great deal of work, so yes, any critique/suggestions are greatly appreciated, and after all these years we have thick skins so can survive even the harshest suggestions.
> 
>    Barry
> 
> On Jan 23, 2013, at 6:13 PM, "Schneider, Barry I." <bschneid at nsf.gov> wrote:
> 
> > Barry,
> > First, thanks for getting back to me so quickly.   I view this as a way to make things easier for everyone for a library that is really invaluable to many of us.  Phil P. is a pro at making rolls and modules for the Rocks distribution of CentOS that is widely used in the NSF cyberinfrastructure and by others.  I am both a program manager for the XSEDE project and a large user as well so I appreciate the ability to use the library in its most transparent fashion.  After Phil did his thing we tested it and it worked perfectly on our cluster.  Basically, you load the module and any associated modules such as the Intel compiler and appropriate MPI module and then you just use it.  No screwing around with building and the rest of it.  That's the good news.  Of course, you need to make a roll for every specific combination of compiler and MPI but I believe what Phil has learned makes that pretty straightforward to do.  While I cannot speak for Phil, I would expect that anything he learned would be available to you folks if that's what you wanted.  The next step for us will be to incorporate what we did in the Rocks distribution which will eventually propagate to lots of users.  Eventually, there will be an XSEDE distribution which will be used by an even larger number of sites.  We are talking about many thousands of users.  So, I guess what I am really asking is whether you are interested enough in what Phil learned to perhaps modify the current PetSc so that it is easier for users to install or make available the technology for folks to make their own rolls.  Of course, you could decide that is not on your agenda and that's fine.  But if you capitalize on our experience and your great software that would be wonderful and perhaps offer users alternatives to the current way of doing things that would make life easier.
> >
> > **************************************************
> > Dr Barry I. Schneider
> > Program Director for Cyberinfrastructure Past Chair, APS Division of
> > Computational Physics Physics Division National Science Foundation
> > 4201 Wilson Blvd.
> > Arlington, VA 22230
> > Phone:(703) 292-7383
> > FAX:(703) 292-9078
> > Cell:(703) 589-2528
> > **************************************************
> >
> >
> > -----Original Message-----
> > From: Barry Smith [mailto:bsmith at mcs.anl.gov]
> > Sent: Wednesday, January 23, 2013 5:56 PM
> > To: petsc-maint at mcs.anl.gov; Schneider, Barry I.
> > Subject: Re: [petsc-maint #149715] Making a PetSc Roll and Rocks
> > Module
> >
> >
> >   Barry,
> >
> >     Thanks for the feedback. We actually desire to support "system" installs just as easily as "home directory" installs, though our documentation emphasizes "home directory" installs since we feel that is most practical for more users. We'd be interested in more specifics on the difficulties and any suggestions there may be to make the process (especially for multiple compilers/mpis) easier. That is what could we have done differently to make it easier for you?
> >
> >    Thanks
> >
> >    Barry
> >
> > On Jan 23, 2013, at 1:59 PM, "Schneider, Barry I." <bschneid at nsf.gov> wrote:
> >
> >> I thought I might pass on the following to the folks maintaining PetSc.  Recently we had the occasion to make a Rocks roll and module to be used on a local cluster here at NSF.  Phil Papadopoulos the developer of Rocks at SDSC took the time to help us to do that not simply because we wanted it but also because he wanted to be able to know how to do it and distribute it to a much larger set users of NSF resources and also on out NSF supported platforms.  Here are his comments.  Perhaps if you feel there are things that could be made easier that would be great.  It also could be useful to you directly.
> >>
> >> BTW, Petsc is kind of a bear to package -- they really expect you to build it in your home directory :-).
> >> I took the time to make the roll pretty flexible in terms of compiler/mpi/network support to build various versions.
> >> This was modeled after other Triton rolls so that it is consistent with other software -- it likely becomes part of the standard SDSC software stack, so this was a good thing to do all the way around.
> >>
> >> I'm about ready to add this to our code repository, it will show up on git.rocksclusters.org<http://git.rocksclusters.org> tomorrow morning.
> >>
> >>
> >> **************************************************
> >> Dr Barry I. Schneider
> >> Program Director for Cyberinfrastructure Past Chair, APS Division of
> >> Computational Physics Physics Division National Science Foundation
> >> 4201 Wilson Blvd.
> >> Arlington, VA 22230
> >> Phone:(703) 292-7383
> >> FAX:(703) 292-9078
> >> Cell:(703) 589-2528
> >> **************************************************
> >>
> >>
> >
> 
> 
> 
> 
> -- 
> Philip Papadopoulos, PhD
> University of California, San Diego
> 858-822-3628 (Ofc)
> 619-331-2990 (Fax)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20130124/81d3a58c/attachment.html>


More information about the petsc-dev mailing list