few questions
Aron Ahmadia
aja2111 at columbia.edu
Wed Feb 27 14:48:34 CST 2008
Thanks Satish,
That's definitely an easier way to think about it...
~A
On Wed, Feb 27, 2008 at 3:40 PM, Satish Balay <balay at mcs.anl.gov> wrote:
> Just a note on terminology. The difference between shared & dynamic is
> a bit confusing [esp across windows/linux/mac etc..]. I like to use
> 'shared-libraries' name instead of 'dynamic-libraries', as thats the
> primary feature of .so/.dylib/.dll etc.
>
> PETSc configure supports the following options
>
> --with-shared=0/1 --with-dynamic=0/1
>
> The dynamic option refers to the using dlopen() to look for function
> in a sharedlibrary [instead of resolving these functions at link-time]
>
> If petsc is built with dynamic usage- then PETSC_USE_DYNAMIC_LIBRARIES
> flag is set in petscconf.h. Shared libs can be identified by looking
> at the library names.
>
> Satish
>
>
>
> On Wed, 27 Feb 2008, Aron Ahmadia wrote:
>
> > On Wed, Feb 27, 2008 at 2:11 AM, amjad ali <amjad11 at gmail.com> wrote:
> > > Hello all,
> > >
> > > Please answer the following,
> > >
> > > 1) What is the difference between static and dynamic versions of petsc?
> > >
> >
> > Start here: http://en.wikipedia.org/wiki/Library_(computer_science)#Static_libraries
> >
> > In PETSc the primary differences end up being the size and link-time.
> > Statically-linked executables need all the possible code that they
> > could contain in the actual file, so they can be up to several MB in
> > size. Dynamically-linked executables are much leaner for the small
> > price of a little extra load time.
> >
> > Now if you're talking about Dynamically-Loaded code, that's a bit hairier...
> >
> > > 2) How to check that which version (static or dynamic) is installed on a
> > > system?
> > >
> >
> > The fastest way is probably to look in $PETSC_DIR/$PETSC_ARCH/
> >
> > If you see .a files, you've got static libraries, if you see .so or
> > .dylib files you've got dynamic libraries.
> >
> > > 3) Plz comment on if there is any effect of static/dynamic version while
> > > using/calling petsc from some external package?
> > >
> >
> > I'm not sure what you're asking here. If you mean "Is there a
> > difference between calling dynamically compiled PETSc from statically
> > compiled PETSc" the answer is no. There are differences in how you
> > compile and link the two version but your actual code would look the
> > same.
> >
> > Again, if we're talking about dynamically loaded code (using something
> > like dl_open), then your code will look different.
> >
> > > 4) how to update an already installed petsc version with newerer/latest
> > > version of petsc?
> > >
> >
> > Doing this in place is more trouble than it's worth if you're not
> > using a development copy . I just grab the latest copy of PETSc from
> > their webpage, then re-build and re-install.
> >
> > ~A
> >
> >
>
>
More information about the petsc-users
mailing list