dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #25925
Re: [Branch ~dolfin-core/dolfin/trunk] Rev 6899: Fix multicore bench code and some more assembler tidy-up.
Strange. I'm working on a new buildbot and all the slaves fails to
build the multicore benchmark:
http://fenicsproject.org:8010/waterfall?project=dolfin&category=dolfin.trunk
Johannes
On Fri, Sep 14, 2012 at 11:57 AM, Garth N. Wells <gnw20@xxxxxxxxx> wrote:
> Builds fine for me.
>
> Garth
>
> On Fri, Sep 14, 2012 at 10:35 AM, Johannes Ring <johannr@xxxxxxxxx> wrote:
>> The multicore benchmark fails to build after this commit. The error message is:
>>
>> [100%] Building CXX object
>> bench/fem/multicore/cpp/CMakeFiles/bench_fem_multicore_cpp.dir/main.cpp.o
>> /home/johannr/dev/fenics/src/dolfin/trunk/bench/fem/multicore/cpp/main.cpp:
>> In function ‘double bench(std::string, boost::shared_ptr<const
>> dolfin::Form>)’:
>> /home/johannr/dev/fenics/src/dolfin/trunk/bench/fem/multicore/cpp/main.cpp:97:82:
>> error: no matching function for call to
>> ‘dolfin::AssemblerBase::init_global_tensor(dolfin::Matrix&, const
>> dolfin::Form&, std::vector<std::pair<std::pair<unsigned int, unsigned
>> int>, std::pair<unsigned int, unsigned int> > >&, bool, bool, bool)’
>> /home/johannr/dev/fenics/src/dolfin/trunk/bench/fem/multicore/cpp/main.cpp:97:82:
>> note: candidate is:
>> In file included from
>> /home/johannr/dev/fenics/src/dolfin/trunk/local/include/dolfin/fem/dolfin_fem.h:18:0,
>> from
>> /home/johannr/dev/fenics/src/dolfin/trunk/local/include/dolfin.h:21,
>> from
>> /home/johannr/dev/fenics/src/dolfin/trunk/bench/fem/multicore/cpp/main.cpp:27:
>> /home/johannr/dev/fenics/src/dolfin/trunk/local/include/dolfin/fem/AssemblerBase.h:77:10:
>> note: void dolfin::AssemblerBase::init_global_tensor(dolfin::GenericTensor&,
>> const dolfin::Form&, const std::vector<std::pair<std::pair<unsigned
>> int, unsigned int>, std::pair<unsigned int, unsigned int> > >&)
>> /home/johannr/dev/fenics/src/dolfin/trunk/local/include/dolfin/fem/AssemblerBase.h:77:10:
>> note: candidate expects 3 arguments, 6 provided
>> make[2]: *** [bench/fem/multicore/cpp/CMakeFiles/bench_fem_multicore_cpp.dir/main.cpp.o]
>> Error 1
>> make[1]: *** [bench/fem/multicore/cpp/CMakeFiles/bench_fem_multicore_cpp.dir/all]
>> Error 2
>> make: *** [all] Error 2
>>
>> I tried to make it work, but had no luck. Can someone push a fix?
>>
>> Johannes
>>
>> On Mon, Sep 10, 2012 at 4:52 PM, <noreply@xxxxxxxxxxxxx> wrote:
>>> ------------------------------------------------------------
>>> revno: 6899
>>> committer: Garth N. Wells <gnw20@xxxxxxxxx>
>>> branch nick: all
>>> timestamp: Mon 2012-09-10 15:50:55 +0100
>>> message:
>>> Fix multicore bench code and some more assembler tidy-up.
>>> modified:
>>> bench/fem/multicore/cpp/main.cpp
>>> dolfin/fem/Assembler.cpp
>>> dolfin/fem/AssemblerBase.cpp
>>> dolfin/fem/AssemblerBase.h
>>> dolfin/fem/LinearVariationalSolver.cpp
>>> dolfin/fem/OpenMpAssembler.cpp
>>> dolfin/fem/SymmetricAssembler.cpp
>>> dolfin/fem/SystemAssembler.cpp
>>>
>>>
>>> --
>>> lp:dolfin
>>> https://code.launchpad.net/~dolfin-core/dolfin/trunk
>>>
>>> Your team DOLFIN Core Team is subscribed to branch lp:dolfin.
>>> To unsubscribe from this branch go to https://code.launchpad.net/~dolfin-core/dolfin/trunk/+edit-subscription
>>>
>>> === modified file 'bench/fem/multicore/cpp/main.cpp'
>>> --- bench/fem/multicore/cpp/main.cpp 2012-09-10 08:15:56 +0000
>>> +++ bench/fem/multicore/cpp/main.cpp 2012-09-10 14:50:55 +0000
>>> @@ -98,8 +98,10 @@
>>>
>>> // Assemble
>>> Timer timer("Total time");
>>> + Assembler assembler;
>>> + assembler.reset_sparsity = false;
>>> for (dolfin::uint i = 0; i < NUM_REPS; ++i)
>>> - assemble(A, *a, false);
>>> + assemble(A, *a);
>>> const double t = timer.stop();
>>>
>>> // Write summary
>>>
>>> === modified file 'dolfin/fem/Assembler.cpp'
>>> --- dolfin/fem/Assembler.cpp 2012-09-08 09:49:23 +0000
>>> +++ dolfin/fem/Assembler.cpp 2012-09-10 14:50:55 +0000
>>> @@ -156,8 +156,7 @@
>>>
>>> // Initialize global tensor
>>> const std::vector<std::pair<std::pair<uint, uint>, std::pair<uint, uint> > > periodic_master_slave_dofs;
>>> - AssemblerBase::init_global_tensor(A, a, periodic_master_slave_dofs,
>>> - reset_sparsity, add_values, keep_diagonal);
>>> + init_global_tensor(A, a, periodic_master_slave_dofs);
>>>
>>> // Assemble over cells
>>> assemble_cells(A, a, ufc, cell_domains, 0);
>>>
>>> === modified file 'dolfin/fem/AssemblerBase.cpp'
>>> --- dolfin/fem/AssemblerBase.cpp 2012-09-09 10:53:56 +0000
>>> +++ dolfin/fem/AssemblerBase.cpp 2012-09-10 14:50:55 +0000
>>> @@ -48,8 +48,7 @@
>>>
>>> //-----------------------------------------------------------------------------
>>> void AssemblerBase::init_global_tensor(GenericTensor& A, const Form& a,
>>> - const std::vector<std::pair<std::pair<uint, uint>, std::pair<uint, uint> > >& periodic_master_slave_dofs,
>>> - bool reset_sparsity, bool add_values, bool keep_diagonal)
>>> + const std::vector<std::pair<std::pair<uint, uint>, std::pair<uint, uint> > >& periodic_master_slave_dofs)
>>> {
>>> dolfin_assert(a.ufc_form());
>>>
>>>
>>> === modified file 'dolfin/fem/AssemblerBase.h'
>>> --- dolfin/fem/AssemblerBase.h 2012-09-09 10:53:56 +0000
>>> +++ dolfin/fem/AssemblerBase.h 2012-09-10 14:50:55 +0000
>>> @@ -36,8 +36,8 @@
>>> class GenericTensor;
>>> class Form;
>>>
>>> - /// This class provides some common functions used in the
>>> - /// Assembler and SystemAssembler classes.
>>> + /// This class provides some common functions used in
>>> + /// assembler classes.
>>>
>>> class AssemblerBase
>>> {
>>> @@ -74,9 +74,8 @@
>>> bool keep_diagonal;
>>>
>>> // Initialize global tensor
>>> - static void init_global_tensor(GenericTensor& A, const Form& a,
>>> - const std::vector<std::pair<std::pair<uint, uint>, std::pair<uint, uint> > >& periodic_master_slave_dofs,
>>> - bool reset_sparsity, bool add_values, bool keep_diagonal);
>>> + void init_global_tensor(GenericTensor& A, const Form& a,
>>> + const std::vector<std::pair<std::pair<uint, uint>, std::pair<uint, uint> > >& periodic_master_slave_dofs);
>>>
>>> protected:
>>>
>>>
>>> === modified file 'dolfin/fem/LinearVariationalSolver.cpp'
>>> --- dolfin/fem/LinearVariationalSolver.cpp 2012-09-08 09:49:23 +0000
>>> +++ dolfin/fem/LinearVariationalSolver.cpp 2012-09-10 14:50:55 +0000
>>> @@ -26,6 +26,7 @@
>>> #include <dolfin/la/GenericVector.h>
>>> #include <dolfin/la/LinearAlgebraFactory.h>
>>> #include <dolfin/la/LinearSolver.h>
>>> +#include "Assembler.h"
>>> #include "AssemblerBase.h"
>>> #include "assemble.h"
>>> #include "DirichletBC.h"
>>> @@ -138,10 +139,12 @@
>>>
>>>
>>> // Intialise matrix, taking into account periodic dofs
>>> - AssemblerBase::init_global_tensor(*A, *a, dof_pairs, true, false, false);
>>> + Assembler assembler;
>>> + assembler.init_global_tensor(*A, *a, dof_pairs);
>>> + assembler.reset_sparsity = false;
>>>
>>> // Assemble linear system
>>> - assemble(*A, *a, false);
>>> + assembler.assemble(*A, *a);
>>> if (L->ufc_form())
>>> assemble(*b, *L);
>>> else
>>>
>>> === modified file 'dolfin/fem/OpenMpAssembler.cpp'
>>> --- dolfin/fem/OpenMpAssembler.cpp 2012-09-08 09:49:23 +0000
>>> +++ dolfin/fem/OpenMpAssembler.cpp 2012-09-10 14:50:55 +0000
>>> @@ -91,8 +91,7 @@
>>>
>>> // Initialize global tensor
>>> const std::vector<std::pair<std::pair<uint, uint>, std::pair<uint, uint> > > periodic_master_slave_dofs;
>>> - AssemblerBase::init_global_tensor(A, a, periodic_master_slave_dofs,
>>> - reset_sparsity, add_values, keep_diagonal);
>>> + init_global_tensor(A, a, periodic_master_slave_dofs);
>>>
>>> // FIXME: The below selections should be made robust
>>>
>>>
>>> === modified file 'dolfin/fem/SymmetricAssembler.cpp'
>>> --- dolfin/fem/SymmetricAssembler.cpp 2012-09-08 09:49:23 +0000
>>> +++ dolfin/fem/SymmetricAssembler.cpp 2012-09-10 14:50:55 +0000
>>> @@ -205,11 +205,10 @@
>>> coefficients[i]->update();
>>>
>>> // Initialize global tensors
>>> - const std::vector<std::pair<std::pair<uint, uint>, std::pair<uint, uint> > > periodic_master_slave_dofs;
>>> - AssemblerBase::init_global_tensor(A, a, periodic_master_slave_dofs,
>>> - reset_sparsity, add_values, keep_diagonal);
>>> - AssemblerBase::init_global_tensor(A_asymm, a, periodic_master_slave_dofs,
>>> - reset_sparsity, add_values, keep_diagonal);
>>> + error("SymmetricAssembler is presently broken. It will be removed soon.");
>>> + //const std::vector<std::pair<std::pair<uint, uint>, std::pair<uint, uint> > > periodic_master_slave_dofs;
>>> + //init_global_tensor(A, a, periodic_master_slave_dofs);
>>> + //init_global_tensor(A_asymm, a, periodic_master_slave_dofs);
>>>
>>> // Get dofs that are local to this processor
>>> processor_dof_range = A.local_range(0);
>>>
>>> === modified file 'dolfin/fem/SystemAssembler.cpp'
>>> --- dolfin/fem/SystemAssembler.cpp 2012-09-08 09:49:23 +0000
>>> +++ dolfin/fem/SystemAssembler.cpp 2012-09-10 14:50:55 +0000
>>> @@ -180,10 +180,8 @@
>>>
>>> // Initialize global tensors
>>> const std::vector<std::pair<std::pair<uint, uint>, std::pair<uint, uint> > > periodic_master_slave_dofs;
>>> - AssemblerBase::init_global_tensor(A, a, periodic_master_slave_dofs,
>>> - reset_sparsity, add_values, keep_diagonal);
>>> - AssemblerBase::init_global_tensor(b, L, periodic_master_slave_dofs,
>>> - reset_sparsity, add_values, keep_diagonal);
>>> + init_global_tensor(A, a, periodic_master_slave_dofs);
>>> + init_global_tensor(b, L, periodic_master_slave_dofs);
>>>
>>> // Allocate data
>>> Scratch data(a, L);
>>>
>>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~dolfin
>> Post to : dolfin@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~dolfin
>> More help : https://help.launchpad.net/ListHelp
Follow ups
References