← Back to team overview

dolfin team mailing list archive

Re: profiling and UMFPACK

 

> Alessio Quaglino wrote:
>>> Alessio Quaglino wrote:
>>>> Yes, I link dolfin and my code with -pg but not dolfin and UMFPACK,
>>>> hence
>>>> I guess I must use tic() and toc() in order to time the LU
>>>> factorization.
>>>>
>>>> There is another problem with UMFPACK, it seems that with all the
>>>> default
>>>> values the call:
>>>>
>>>> umfpack_dl_numeric( (const long int*) Rp, (const long int*) Ri, Rx,
>>>> Symbolic, &Numeric, control, info);
>>>> control[UMFPACK_PRL] = 2;
>>>> umfpack_dl_report_info(control, info);
>>>>
>>>> returns, in particular, the following:
>>>>
>>>> BLAS library used:  none.  UMFPACK will be slow.
>>>>
>>> This is because your UMFPACK was built without BLAS. In order to make
>>> UMFPACK more portable this is the default, you have to edit the
>>> UMFPACKv4.4/UMFPACK/Make/Make.<arch> and
>>> UMFPACKv4.4/AMD/Make/Make.<arch> files to compile with a BLAS library.
>>> Dolfin can link to UMFPACK like this just fine, it just has timing
>>> implications.
>>>
>>> Andy
>>
>> Ok I see. The problem is that I've used the Debian repositories in order
>> to install UMFPACK. I've thus remove the UMFPACK package and downloaded
>> the code (again version 4.4 to avoid conflicts) from its website. I had
>> to
>> install the UBLAS ATLAS Debian packages and then I could compile with
>> the
>> options:
>>
>> 3: with Fortran interface to the ATLAS BLAS
>> CONFIG =
>> LIB = -lf77blas -latlas -lfrtbegin -lg2c -lm
>>
>> then I configured dolfin with:
>>
>> ./configure --disable-pydolfin
>> --with-amd-lib=/home/alessio/FEniCS/UMFPACKv4.4/AMD/Lib/
>> --with-umfpack-lib=/home/alessio/FEniCS/UMFPACKv4.4/UMFPACK/Lib/
>> --with-umfpack-include=/home/alessio/FEniCS/UMFPACKv4.4/UMFPACK/Include/
>>
>> I recompiled dolfin and my code, but I still obtain the message:
>>
>> BLAS library used: none.  UMFPACK will be slow.
>>
>> can the problem be related to the call of umfpack_dl_* functions? It
>> seems
>> that UMFPACK demos use BLAS for umfpack_di_* but not fot umfpack_dl_*.
>
> No, dl and di relate to the type of integer used. On 32 bit machines
> there is no difference. Either you haven't compiled UMFPACK correctly,
> or DOLFIN is linking to another UMFPACK library. Check that you're
> DOLFIN executable is linked to the correct UMFPACK library by examining
> the compiler linking flags and using ldd on the executable.
>
> Garth

ldd gives:

 linux-gate.so.1 =>  (0xffffe000)
        libdolfin.so.0 => /usr/local/lib/libdolfin.so.0 (0xb7c4c000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7b1e000)
        libblas.so.3 => /usr/lib/atlas/libblas.so.3 (0xb77c1000)
        libgts-0.7.so.5 => /usr/lib/libgts-0.7.so.5 (0xb7776000)
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb7771000)
        librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7768000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb7765000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7761000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb76cb000)
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb76b4000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb75ca000)
        libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb75a3000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7597000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7456000)
        libz.so.1 => /usr/lib/libz.so.1 (0xb7441000)
        libg2c.so.0 => /usr/lib/libg2c.so.0 (0xb741a000)
        /lib/ld-linux.so.2 (0xb7f59000)

I don't know if this output can help, however I'm sure don't have any
other versions of UMFPACK installed and that if I use umfpack_di_* UMFPACK
says "Fortran BLAS", but when I try umfpack_dl_* it says "none". In both
cases the performance is the same, hence I don't understand what could be
wrong.

Alessio


>> Thanks for the help.
>>
>> Alessio
>>
>>
>>>> so I suspect that my UMFPACK and dolfin are not linked properly. I'm
>>>> using
>>>> UMFPACK 4.4 and uBlas. Has anyone experienced something similar?
>>>>
>>>> Alessio
>>>>
>>>>
>>>>
>>>>> I don't have alot of experiance with gprof, nor am I familiar with
>>>>> UMFPACK.
>>>>> But code that isn't compiled AND linked with -pg are ignored by the
>>>>> profiler.
>>>>> Maybe the functions you mention that are ignored aren't compiled and
>>>>> linked with
>>>>> -pg?
>>>>>
>>>>>
>>>>>> I'm trying to profile my code using gprof adding -gp to the flags
>>>>>> when
>>>>>> compiling. However it seems that the functions called by UMFPACK are
>>>>>> completely ignored. Is there a solution to include them or should I
>>>>>> use
>>>>>> another profiling tool? Thanks.
>>>>>>
>>>>>> Regards,
>>>>>> Alessio Quaglino
>>>>>>
>>>>>> _______________________________________________
>>>>>> DOLFIN-dev mailing list
>>>>>> DOLFIN-dev@xxxxxxxxxx
>>>>>> http://www.fenics.org/mailman/listinfo/dolfin-dev
>>>>>>
>>>>> _______________________________________________
>>>>> DOLFIN-dev mailing list
>>>>> DOLFIN-dev@xxxxxxxxxx
>>>>> http://www.fenics.org/mailman/listinfo/dolfin-dev
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> DOLFIN-dev mailing list
>>>> DOLFIN-dev@xxxxxxxxxx
>>>> http://www.fenics.org/mailman/listinfo/dolfin-dev
>>>>
>>>
>>> --
>>>
>>> ====================
>>> Andy Terrel
>>> Computer Science Dept
>>> University of Chicago
>>> aterrel@xxxxxxxxxxxx
>>> ---------------------
>>>
>>> Men are equal;
>>> it is not birth but virtue that makes the difference.
>>>                                             -Voltaire
>>>
>>> _______________________________________________
>>> DOLFIN-dev mailing list
>>> DOLFIN-dev@xxxxxxxxxx
>>> http://www.fenics.org/mailman/listinfo/dolfin-dev
>>>
>>
>>
>> _______________________________________________
>> DOLFIN-dev mailing list
>> DOLFIN-dev@xxxxxxxxxx
>> http://www.fenics.org/mailman/listinfo/dolfin-dev
>>
>
>
>




References