Let's just have the alt file for the chaco diffs and leave everything else the way it. I can't see the effort to change builds stuff worth it in this case.
Barry > On Apr 23, 2018, at 2:13 PM, Balay, Satish <[email protected]> wrote: > > I was thinking more in terms of: our download options should match > source distribution model of externalpackages [but not necessarily > build all components] > > I see chaco is primarily part of seacas and not distributed separately. > [and then seacas is redistributed in trilinos] > > So how about: > > --download-seacas [build chaco and exodusii] > > And remove the separate package support for exodusii and chaco [i.e > remove --download-exodusii --download-chaco] > > [and then somehow make the seacas build via trilinos match the standalone > build] > > I see zoltan is distributed separately, in seacas and also in trilinos > [so current --download-zoltan is still ok?] > > ML is the odd one out - I guess we'll have to extract/repackage the > latest version from trilinos - and use it with --download-ml. > > Satish > > On Mon, 23 Apr 2018, Smith, Barry F. wrote: > >> >> Making people install all of Trilinos for just Chaco or just ML is just >> plain mean and we are not mean. >> >> Suitesparse is at least not huge and is well contained so just because we >> install all of it doesn't mean we should require the same route for Trilinos. >> >> Barry >> >> >> >>> On Apr 23, 2018, at 10:11 AM, Balay, Satish <[email protected]> wrote: >>> >>> Ah - yes. I did check the difference in petsc code wrt >>> PETSC_HAVE_CHACO_INT_ASSIGNMENT - but didn't check the details inside >>> trilinos/chaco. So the available standalone chaco tarball is version >>> 2.2 but the version included inside seacas is 3.0.0 [with a switch >>> from short to int] >>> >>> We have these hierarchy of packages - and need to figure out a better >>> [install] interface so the same version is used irrespective of the >>> mode of install? >>> >>> Right now - --download-exodusii gets and installs seacas [with only >>> exodusii enabled] >>> >>> So we have: >>> >>> --download-ml --download-chaco --download-zoltan [separate packages] >>> >>> --download-exodusii [installs seacas - and enables only exodusii] >>> >>> --download-trilinos [installs trilinos which includes >>> seacas(exodusii,chaco), ml - zoltan] >>> >>> since seacas is distributed separately and includes exodusii and chaco - >>> have: >>> >>> --download-seacas=1 [with options exodusii=1,chaco=1 by default [or >>> disabled?] >>> >>> --download-seacas=1 >>> --download-seacas=1 --download-seacas-exodusii=0 [only install chaco] >>> --download-seacas-chaco=0 [only install exodusii] >>> >>> [but zoltan, ml are not distributed separately?] >>> >>> Or should we always use trilinos? - if one wants any of the above >>> packages [a huge download]? and enable or disable selected >>> sub-components as desired? >>> >>> Another similar package is SuiteSparse. At some point we had install >>> for only sub-components(cholmod,umfpack) - and then merged them all >>> into --download-suitesparse. >>> >>> Satish >>> >>> On Mon, 23 Apr 2018, Vaclav Hapla wrote: >>> >>>> I can confirm --download-chaco vs --download-trilinos give different chaco >>>> partitioning - I can reproduce on my machine. So I made some investigation. >>>> >>>> PETSC_HAVE_CHACO_INT_ASSIGNMENT is set only for --download-trilinos. >>>> This macro makes difference only at 4 places: >>>> >>>> At src/mat/partition/impls/chaco/chaco.c:8 and >>>> src/dm/impls/plex/plexpartition.c:1192: >>>> #if defined(PETSC_HAVE_CHACO_INT_ASSIGNMENT) >>>> #include <chaco.h> >>>> #else >>>> /* Older versions of Chaco do not have an include file */ >>>> PETSC_EXTERN int interface(int nvtxs, int *start, int *adjacency, int >>>> *vwgts, >>>> float *ewgts, float *x, float *y, float *z, char >>>> *outassignname, >>>> char *outfilename, short *assignment, int architecture, >>>> int ndims_tot, >>>> int mesh_dims[3], double *goal, int global_method, int >>>> local_method, >>>> int rqi_flag, int vmax, int ndims, double eigtol, long >>>> seed); >>>> #endif >>>> >>>> At src/mat/partition/impls/chaco/chaco.c:68 and >>>> src/dm/impls/plex/plexpartition.c:1227: >>>> #if defined(PETSC_HAVE_CHACO_INT_ASSIGNMENT) >>>> int *assignment; >>>> #else >>>> short *assignment; >>>> #endif >>>> >>>> So it seems PETSc is not responsible for the different outputs. >>>> >>>> In Trilinos, Chaco is shipped within the Seacas package. The notice at >>>> http://gsjaardema.github.io/seacas/#chaco >>>> <http://gsjaardema.github.io/seacas/#chaco> says >>>> "The short *assignment argument to the interface function has been changed >>>> to int *assignment to permit decompositions with more than 32,768 >>>> processors." >>>> They also say >>>> "There are also now a CHACO_VERSION_MAJOR, CHACO_VERSION_MINOR, >>>> CHACO_VERSION_PATCH defines in chaco.h." >>>> Looking there, the version is 3.0.0. >>>> >>>> PETSc's configure --download-chaco gets this one: >>>> http://ftp.mcs.anl.gov/pub/petsc/externalpackages/Chaco-2.2-p2.tar.gz >>>> <http://ftp.mcs.anl.gov/pub/petsc/externalpackages/Chaco-2.2-p2.tar.gz> >>>> It actually includes a git repo. There we can see it's the original >>>> author's version + some updates by Barry and Satish, mainly to avoid some >>>> name clashes. >>>> The original version is probably this one: >>>> https://www3.cs.stonybrook.edu/~algorith/implement/chaco/distrib/Chaco-2.2.tar.gz >>>> >>>> <https://www3.cs.stonybrook.edu/~algorith/implement/chaco/distrib/Chaco-2.2.tar.gz> >>>> Looking at the contents of the tarball, these sources data back to 2000. >>>> I tried comparing these two version but there are two many changes in >>>> formatting to identify crucial changes easily. But definitely these two >>>> versions differ and can give different results. >>>> >>>> The main intent of my tests in src/dm/impls/plex/examples/tutorials/ex5.c >>>> is testing HDF5 I/O with different formats and I just needed to somehow >>>> distribute the sequential mesh read from exodus file. So I will replace >>>> chaco by simple here. But still it's a question whether we want to do >>>> something about the confusing situation with Chaco. >>>> >>>> Vaclav >>>> >>>>> 22. 4. 2018 v 17:56, Satish Balay <[email protected]>: >>>>> >>>>> On Sun, 22 Apr 2018, Smith, Barry F. wrote: >>>>> >>>>>>> It would be good to figure out exactly where the difference comes form >>>>>>> [wrt chaco from trilinos vs separate install of chaco - or some other >>>>>>> interaction from trilinos] >>>>>> >>>>>> Different random numbers being generated? >>>>> >>>>> Its trilinos vs non-trilinos build of packages - so I don't think its >>>>> 'different random number generation' issue. >>>>> >>>>> Trilinos install does: >>>>> >>>>> if self.libraries.check(self.dlib, "interface"): >>>>> self.addDefine('HAVE_CHACO',1) >>>>> self.addDefine('HAVE_CHACO_INT_ASSIGNMENT',1) >>>>> if self.libraries.check(self.dlib, "ML_Set_PrintLevel"): >>>>> self.addDefine('HAVE_ML',1) >>>>> if self.libraries.check(self.dlib, "Zoltan_LB_Partition"): >>>>> self.addDefine('HAVE_ZOLTAN',1) >>>>> if self.libraries.check(self.dlib, "ex_close"): >>>>> self.addDefine('HAVE_EXODUSII',1) >>>>> >>>>> >>>>> For one there is different chaco code in petsc based on this flag >>>>> HAVE_CHACO_INT_ASSIGNMENT. Its not clear to me if this is causing the >>>>> difference. >>>>> >>>>> --download-chaco is using 'Chaco-2.2-p2.tar.gz'. This matches the >>>>> latest chaco tarball from their website [Chaco-2.2.tar.gz]. So I do >>>>> not know if chaco packaged by trilinos has changes that cause this >>>>> difference [clearly it added some change that resulted in us using the >>>>> flag HAVE_CHACO_INT_ASSIGNMENT] >>>>> >>>>> And then there is also exodus.. --download-exodus uses the latest >>>>> snapshot from https://github.com/gsjaardema/seacas/ >>>>> >>>>> Satish >>>> >>>> >>> >> >> >
