[pooma-dev] Problem trying to build parallel application
Jeffrey Oldham
oldham at codesourcery.com
Fri May 11 18:52:48 UTC 2001
Perhaps yesterday's patch does resolve the makeOwnCopy()
difficulty you experienced. Will you please try it again? I do not
know where the source code is located to test it myself.
Thanks,
Jeffrey D. Oldham
oldham at codesourcery.com
On Wed, May 09, 2001 at 02:19:58PM -0600, Dave Nystrom wrote:
> Hi Guys,
>
> I'm trying to build a parallel version of our application under RH Linux 6.2
> using KCC-4.0d and am having compile problems. Below is part of the build
> log. Could someone take a look at this and see what the problem is? I think
> Stephen Smith might be a likely candidate.
>
> --
> Dave Nystrom email: wdn at lanl.gov
> LANL X-3 phone: 505-667-7913 fax: 505-665-3046
>
> ---------------------------build-log-------------------------------------
> cd /usr/projects/blanca/usr/wdn/blanca_src_4.0/ApplicationsLayer/Demo/
> date; /usr/bin/time -p make RECURSE=1 PASS=MPI1 app
>
> Setting csh aliases for Blanca source environment v 4.0 on host: mutley
> Wed May 9 12:31:34 MDT 2001
> COPYING... /usr/projects/blanca/packages/TecFramework/TecFramework_src/Main/main.cc to /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/main.cc
>
> COMPILING... See /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/Demo_src/include/DemoPCH.o_MPI1.info
>
> KCC -c /usr/projects/blanca/usr/wdn/blanca_src_4.0/ApplicationsLayer/Demo/Demo_src/include/DemoPCH.cc -o /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/Demo_src/include/DemoPCH.o --output_dependencies /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/Demo_src/include/DemoPCH.o.depend.mk.temp --diag_suppress 630 --create_pch /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/DEMO_MPI1.pch -DTEC_USE_DEMO -DTEC_USE_PHYSICSBETA -DTEC_USE_HYDRODYNAMICS -DTEC_USE_PHYSICSSUPPORTBETA -DTEC_USE_PHYSICSBASECLASSES -DTEC_USE_POOMA2INTEGRATION -DTEC_USE_TECFRAMEWORK -DTEC_USE_POOMA2INSTANTIATIONS -DTEC_USE_STLINSTANTIATIONS -DTEC_USE_POOMA -DTEC_USE_CHEETAH -DTEC_USE_MM -DTEC_USE_PCG -DCART_XYZ -DDOUBLE_PRECISION -DPETE -DV034 -DTEC_NEW_POOMA_COMPRESSION -DTEC_LINUX -DTEC_USING_KCC_DEFINES -DTEC_KCC_INFINITE_COMPILE_TIME -DTEC_INST -DTEC_USE_PCH -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/ApplicationsLayer/Demo -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer/PhysicsBeta -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer/Hydrodynamics -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsSupportLayer/PhysicsSupportBeta -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsSupportLayer/PhysicsBaseClasses -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/TecIntegrationLayer/Pooma2Integration -I/usr/projects/blanca/packages/TecFramework -I/usr/projects/blanca/packages/BlancaInstantiations/Pooma2Instantiations -I/usr/projects/blanca/packages/BlancaInstantiations/STLInstantiations -I/usr/projects/blanca/packages/PoomaII/r2/src -I/usr/projects/blanca/packages/PoomaII/r2/lib/LINUX_KCC_DEBUG_CHEETAH_NOEX -I/usr/projects/blanca/packages/Cheetah/cheetah-1.0.0/src -I/usr/projects/blanca/packages/Cheetah/cheetah-1.0.0/lib/LINUX_KCC_DEBUG_NOEX -I/home/wdn/packages/mpich-1.2.1/include -I/usr/projects/blanca/packages/mm-1.1.1/include -I/usr/projects/blanca/packages/pcg/pcg_f77 --display_error_number -fpic --strict -D__KAI_STRICT --diag_suppress 450 --no_exceptions +K0 --no_kdebug
>
> "/usr/projects/blanca/usr/wdn/blanca_src_4.0/ApplicationsLayer/Demo/Demo_src/include/DemoPCH.cc": creating precompiled header file "/scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/DEMO_MPI1.pch"
> real 26.25
> user 14.68
> sys 4.94
>
> Done compiling /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/Demo_src/include/DemoPCH.o
>
> COMPILING... See /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/main.o_MPI1.info
>
> KCC -c /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/main.cc -o /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/main.o --output_dependencies /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/main.o.depend.mk.temp --diag_suppress 630 --COMPDO_fe_cc2c --pch_ignore_dir --use_pch /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/DEMO_MPI1.pch -DTEC_USE_DEMO -DTEC_USE_PHYSICSBETA -DTEC_USE_HYDRODYNAMICS -DTEC_USE_PHYSICSSUPPORTBETA -DTEC_USE_PHYSICSBASECLASSES -DTEC_USE_POOMA2INTEGRATION -DTEC_USE_TECFRAMEWORK -DTEC_USE_POOMA2INSTANTIATIONS -DTEC_USE_STLINSTANTIATIONS -DTEC_USE_POOMA -DTEC_USE_CHEETAH -DTEC_USE_MM -DTEC_USE_PCG -DCART_XYZ -DDOUBLE_PRECISION -DPETE -DV034 -DTEC_NEW_POOMA_COMPRESSION -DTEC_LINUX -DTEC_USING_KCC_DEFINES -DTEC_KCC_INFINITE_COMPILE_TIME -DTEC_INST -DTEC_USE_PCH -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/ApplicationsLayer/Demo -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer/PhysicsBeta -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer/Hydrodynamics -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsSupportLayer/PhysicsSupportBeta -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsSupportLayer/PhysicsBaseClasses -I/usr/projects/blanca/usr/wdn/blanca_src_4.0/TecIntegrationLayer/Pooma2Integration -I/usr/projects/blanca/packages/TecFramework -I/usr/projects/blanca/packages/BlancaInstantiations/Pooma2Instantiations -I/usr/projects/blanca/packages/BlancaInstantiations/STLInstantiations -I/usr/projects/blanca/packages/PoomaII/r2/src -I/usr/projects/blanca/packages/PoomaII/r2/lib/LINUX_KCC_DEBUG_CHEETAH_NOEX -I/usr/projects/blanca/packages/Cheetah/cheetah-1.0.0/src -I/usr/projects/blanca/packages/Cheetah/cheetah-1.0.0/lib/LINUX_KCC_DEBUG_NOEX -I/home/wdn/packages/mpich-1.2.1/include -I/usr/projects/blanca/packages/mm-1.1.1/include -I/usr/projects/blanca/packages/pcg/pcg_f77 --display_error_number -fpic --strict -D__KAI_STRICT --diag_suppress 450 --no_exceptions +K0 --no_kdebug
>
> real 12.92
> user 4.74
> sys 0.56
>
> Done compiling /scratch/wdn/obj_4.0/DEMO/LINUX_KCC_CART_XYZ_MPI/main.o
>
> .........Stuff Deleted............
>
> KCC -o /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/libhydrodynamics.so --COMPO_ln -Wl,-noinhibit-exec --no_exceptions --parallel_build 1 /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/HydrodynamicsGroup.o /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/CompatibleHydro/SymmetryRelations.o /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/CompatibleHydro/CompatibleRelations.o /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/CompatibleHydro/Commands/LagRadialVelocity.o /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/CompatibleHydro/Commands/SetBrickCoordinates.o /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/CompatibleHydro/Commands/SetFieldValues.o /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/CompatibleHydro/Commands/SetVertexPoints.o /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/EOS/GammaLaw.o /scratch/wdn/obj_4.0/PHYSICSSUPPORTBETA/LINUX_KCC_CART_XYZ_MPI/libphysicssupportbeta.so /scratch/wdn/obj_4.0/PHYSICSBASECLASSES/LINUX_KCC_CART_XYZ_MPI/libphysicsbaseclasses.so /scratch/wdn/obj_4.0/POOMA2INTEGRATION/LINUX_KCC_CART_XYZ_MPI/libpooma2integration.so /usr/projects/blanca/packages/TecFramework/lib/TECFRAMEWORK/LINUX_KCC_DEBUG_SHARED_NOEX/libtecframework.so /usr/projects/blanca/packages/BlancaInstantiations/Pooma2Instantiations/lib/POOMA2INSTANTIATIONS/LINUX_KCC_DEBUG_CHEETAH_SHARED_NOEX/libpooma2instantiations.so /usr/projects/blanca/packages/BlancaInstantiations/STLInstantiations/lib/STLINSTANTIATIONS/LINUX_KCC_DEBUG_SHARED_NOEX/libstlinstantiations.so /usr/projects/blanca/packages/PoomaII/r2/lib/LINUX_KCC_DEBUG_CHEETAH_NOEX/libpooma.a
>
> cd "/home/wdn/blanca/usr/wdn/blanca_src_4.0/ApplicationsLayer/Demo"
> "/usr/projects/blanca/packages/PoomaII/r2/src/Engine/MultiPatchEngine.cpp", line 252: error #135:
> class "Engine<1, poomalote::Real, Remote<CompressibleBrick>>" has no
> member "makeOwnCopy"
> data()[i].makeOwnCopy();
> ^
> detected during:
> instantiation of "Engine<Dim, T, MultiPatch<LayoutTag,
> PatchTag>>::Engine_t &Engine<Dim, T,
> MultiPatch<LayoutTag, PatchTag>>::makeOwnCopy() [with
> Dim=1, T=poomalote::Real, LayoutTag=GridTag,
> PatchTag=Remote<CompressibleBrick>]" at line 482 of
> "/usr/projects/blanca/packages/PoomaII/r2/src/NewField/Fi
> eldEngine/FieldEngineBase.h"
> instantiation of "void FieldEngineBase<Dim, T,
> EngineTag>::makeOwnCopy(const Subject &) [with Dim=1,
> T=poomalote::Real,
> EngineTag=poomalote::ModelTraits<poomalote::OneDF<poomalo
> te::DefaultTraits>>::EngineTag,
> Subject=Field<poomalote::ModelTraits<poomalote::OneDF<poo
> malote::DefaultTraits>>::MeshTag, poomalote::Real,
> poomalote::ModelTraits<poomalote::OneDF<poomalote::Defaul
> tTraits>>::EngineTag>]" at line 983 of
> "/usr/projects/blanca/packages/PoomaII/r2/src/NewField/Fi
> eld.h"
> instantiation of "void Field<GeometryTag, T,
> EngineTag>::makeOwnCopy() [with
> GeometryTag=poomalote::ModelTraits<poomalote::OneDF<pooma
> lote::DefaultTraits>>::MeshTag, T=poomalote::Real,
> EngineTag=poomalote::ModelTraits<poomalote::OneDF<poomalo
> te::DefaultTraits>>::EngineTag]" at line 69 of
> "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsSuppo
> rtLayer/PhysicsBaseClasses/PhysicsBaseClasses_src/HelperC
> lasses/MMField.t.hh"
> instantiation of "void
> PhysicsBaseClasses::matMMWeightedAverage(const Field<G1,
> T1, E1> &, const Field<MeshTag, poomalote::Real,
> EngineTag> &, const Field<G1, T1, E1> &, bool) [with
> MeshTag=poomalote::ModelTraits<poomalote::OneDF<poomalote
> ::DefaultTraits>>::MeshTag, T=poomalote::Real,
> EngineTag=poomalote::ModelTraits<poomalote::OneDF<poomalo
> te::DefaultTraits>>::EngineTag]" at line 579 of
> "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer
> /Hydrodynamics/Hydrodynamics_src/CompatibleHydro/Compatib
> leRelations.t.hh"
> instantiation of "void
> Hydrodynamics::CompatibleRelations<Traits>::calcAvgQuanti
> ty(const
> Hydrodynamics::CompatibleRelations<Traits>::ScalarField
> &, const
> Hydrodynamics::CompatibleRelations<Traits>::ScalarField
> &, const
> Hydrodynamics::CompatibleRelations<Traits>::ScalarField
> &) [with
> Traits=poomalote::OneDF<poomalote::DefaultTraits>]"
>
> "/usr/projects/blanca/packages/PoomaII/r2/src/Engine/MultiPatchEngine.cpp", line 252: error #135:
> class "Engine<2, poomalote::Real, Remote<CompressibleBrick>>" has no
> member "makeOwnCopy"
> data()[i].makeOwnCopy();
> ^
> detected during:
> instantiation of "Engine<Dim, T, MultiPatch<LayoutTag,
> PatchTag>>::Engine_t &Engine<Dim, T,
> MultiPatch<LayoutTag, PatchTag>>::makeOwnCopy() [with
> Dim=2, T=poomalote::Real, LayoutTag=GridTag,
> PatchTag=Remote<CompressibleBrick>]" at line 482 of
> "/usr/projects/blanca/packages/PoomaII/r2/src/NewField/Fi
> eldEngine/FieldEngineBase.h"
> instantiation of "void FieldEngineBase<Dim, T,
> EngineTag>::makeOwnCopy(const Subject &) [with Dim=2,
> T=poomalote::Real,
> EngineTag=poomalote::ModelTraits<poomalote::TwoDF<poomalo
> te::DefaultTraits>>::EngineTag,
> Subject=Field<poomalote::ModelTraits<poomalote::TwoDF<poo
> malote::DefaultTraits>>::MeshTag, poomalote::Real,
> poomalote::ModelTraits<poomalote::TwoDF<poomalote::Defaul
> tTraits>>::EngineTag>]" at line 983 of
> "/usr/projects/blanca/packages/PoomaII/r2/src/NewField/Fi
> eld.h"
> instantiation of "void Field<GeometryTag, T,
> EngineTag>::makeOwnCopy() [with
> GeometryTag=poomalote::ModelTraits<poomalote::TwoDF<pooma
> lote::DefaultTraits>>::MeshTag, T=poomalote::Real,
> EngineTag=poomalote::ModelTraits<poomalote::TwoDF<poomalo
> te::DefaultTraits>>::EngineTag]" at line 69 of
> "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsSuppo
> rtLayer/PhysicsBaseClasses/PhysicsBaseClasses_src/HelperC
> lasses/MMField.t.hh"
> instantiation of "void
> PhysicsBaseClasses::matMMWeightedAverage(const Field<G1,
> T1, E1> &, const Field<MeshTag, poomalote::Real,
> EngineTag> &, const Field<G1, T1, E1> &, bool) [with
> MeshTag=poomalote::ModelTraits<poomalote::TwoDF<poomalote
> ::DefaultTraits>>::MeshTag, T=poomalote::Real,
> EngineTag=poomalote::ModelTraits<poomalote::TwoDF<poomalo
> te::DefaultTraits>>::EngineTag]" at line 579 of
> "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer
> /Hydrodynamics/Hydrodynamics_src/CompatibleHydro/Compatib
> leRelations.t.hh"
> instantiation of "void
> Hydrodynamics::CompatibleRelations<Traits>::calcAvgQuanti
> ty(const
> Hydrodynamics::CompatibleRelations<Traits>::ScalarField
> &, const
> Hydrodynamics::CompatibleRelations<Traits>::ScalarField
> &, const
> Hydrodynamics::CompatibleRelations<Traits>::ScalarField
> &) [with
> Traits=poomalote::TwoDF<poomalote::DefaultTraits>]"
>
> "/usr/projects/blanca/packages/PoomaII/r2/src/Engine/MultiPatchEngine.cpp", line 252: error #135:
> class "Engine<3, poomalote::Real, Remote<CompressibleBrick>>" has no
> member "makeOwnCopy"
> data()[i].makeOwnCopy();
> ^
> detected during:
> instantiation of "Engine<Dim, T, MultiPatch<LayoutTag,
> PatchTag>>::Engine_t &Engine<Dim, T,
> MultiPatch<LayoutTag, PatchTag>>::makeOwnCopy() [with
> Dim=3, T=poomalote::Real, LayoutTag=GridTag,
> PatchTag=Remote<CompressibleBrick>]" at line 482 of
> "/usr/projects/blanca/packages/PoomaII/r2/src/NewField/Fi
> eldEngine/FieldEngineBase.h"
> instantiation of "void FieldEngineBase<Dim, T,
> EngineTag>::makeOwnCopy(const Subject &) [with Dim=3,
> T=poomalote::Real,
> EngineTag=poomalote::ModelTraits<poomalote::ThreeDF<pooma
> lote::DefaultTraits>>::EngineTag,
> Subject=Field<poomalote::ModelTraits<poomalote::ThreeDF<p
> oomalote::DefaultTraits>>::MeshTag, poomalote::Real,
> poomalote::ModelTraits<poomalote::ThreeDF<poomalote::Defa
> ultTraits>>::EngineTag>]" at line 983 of
> "/usr/projects/blanca/packages/PoomaII/r2/src/NewField/Fi
> eld.h"
> instantiation of "void Field<GeometryTag, T,
> EngineTag>::makeOwnCopy() [with
> GeometryTag=poomalote::ModelTraits<poomalote::ThreeDF<poo
> malote::DefaultTraits>>::MeshTag, T=poomalote::Real,
> EngineTag=poomalote::ModelTraits<poomalote::ThreeDF<pooma
> lote::DefaultTraits>>::EngineTag]" at line 69 of
> "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsSuppo
> rtLayer/PhysicsBaseClasses/PhysicsBaseClasses_src/HelperC
> lasses/MMField.t.hh"
> instantiation of "void
> PhysicsBaseClasses::matMMWeightedAverage(const Field<G1,
> T1, E1> &, const Field<MeshTag, poomalote::Real,
> EngineTag> &, const Field<G1, T1, E1> &, bool) [with
> MeshTag=poomalote::ModelTraits<poomalote::ThreeDF<poomalo
> te::DefaultTraits>>::MeshTag, T=poomalote::Real,
> EngineTag=poomalote::ModelTraits<poomalote::ThreeDF<pooma
> lote::DefaultTraits>>::EngineTag]" at line 579 of
> "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer
> /Hydrodynamics/Hydrodynamics_src/CompatibleHydro/Compatib
> leRelations.t.hh"
> instantiation of "void
> Hydrodynamics::CompatibleRelations<Traits>::calcAvgQuanti
> ty(const
> Hydrodynamics::CompatibleRelations<Traits>::ScalarField
> &, const
> Hydrodynamics::CompatibleRelations<Traits>::ScalarField
> &, const
> Hydrodynamics::CompatibleRelations<Traits>::ScalarField
> &) [with
> Traits=poomalote::ThreeDF<poomalote::DefaultTraits>]"
>
> 3 errors detected in the compilation of "/usr/projects/blanca/usr/wdn/blanca_src_4.0/PhysicsLayer/Hydrodynamics/Hydrodynamics_src/CompatibleHydro/CompatibleRelations.cc".
> driver: Compilation failed.
> Recompiling /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/CompatibleHydro/CompatibleRelations.o
> Error: Unable to recompile /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/Hydrodynamics_src/CompatibleHydro/CompatibleRelations.o.
> Command exited with non-zero status 2
> real 279.50
> user 0.28
> sys 0.01
> mv: /scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/libhydrodynamics.so: No such file or directory
> make[1]: *** [/scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/libhydrodynamics.so] Error 1
> make: *** [/scratch/wdn/obj_4.0/HYDRODYNAMICS/LINUX_KCC_CART_XYZ_MPI/libhydrodynamics.so] Error 2
> Command exited with non-zero status 2
> real 5983.14
> user 2052.11
> sys 160.74
>
> Compilation exited abnormally with code 2 at Wed May 9 14:11:17
--
Jeffrey D. Oldham
oldham at codesourcery.com
-------------- next part --------------
Index: Array/Array.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Array/Array.h,v
retrieving revision 1.139
diff -c -p -r1.139 Array.h
*** Array/Array.h 2001/04/20 21:16:23 1.139
--- Array/Array.h 2001/05/11 02:37:11
***************
*** 29,34 ****
--- 29,35 ----
//-----------------------------------------------------------------------------
// Classes:
// Array
+ // View0
// View[1-7]<Array,various domains>
// LeafFunctor<Array, DomainFunctorTag>
// LeafFunctor<Array, ViewFunctorTag<Domain> >
*************** public:
*** 1763,1773 ****
inline Domain_t domain() const
{
return engine_m.domain();
- }
-
- inline Domain_t innerDomain() const
- {
- return engine_m.innerDomain();
}
inline Domain_t physicalDomain() const
--- 1764,1769 ----
Index: Engine/CompressibleBlock.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Engine/CompressibleBlock.h,v
retrieving revision 1.27
diff -c -p -r1.27 CompressibleBlock.h
*** Engine/CompressibleBlock.h 2000/07/11 22:13:00 1.27
--- Engine/CompressibleBlock.h 2001/05/11 02:37:13
*************** private:
*** 531,541 ****
CompressibleBlockController(const CompressibleBlockController& model)
: Observable<T*>(ptr_m),
- size_m(model.size_m),
compressible_m(!Pooma::neverCompress()),
dataObject_m(model.dataObject_m.affinity()),
! ucOffset_m(model.ucOffset_m),
! viewcount_m(0)
{
// Lock the model while we get information pertaining to it
// being compressed or not (such data can't be initialized in
--- 531,541 ----
CompressibleBlockController(const CompressibleBlockController& model)
: Observable<T*>(ptr_m),
compressible_m(!Pooma::neverCompress()),
+ viewcount_m(0),
dataObject_m(model.dataObject_m.affinity()),
! size_m(model.size_m),
! ucOffset_m(model.ucOffset_m)
{
// Lock the model while we get information pertaining to it
// being compressed or not (such data can't be initialized in
Index: Engine/CompressibleBrick.cpp
===================================================================
RCS file: /home/pooma/Repository/r2/src/Engine/CompressibleBrick.cpp,v
retrieving revision 1.24
diff -c -p -r1.24 CompressibleBrick.cpp
*** Engine/CompressibleBrick.cpp 2000/07/11 23:06:40 1.24
--- Engine/CompressibleBrick.cpp 2001/05/11 02:37:13
*************** Engine(const Engine<Dim,T,CompressibleBr
*** 501,506 ****
--- 501,542 ----
//-----------------------------------------------------------------------------
//
+ // Engine<Dim,T,CompressibleBrickView> & makeOwnCopy()
+ //
+ // Causes the CompressibleBrickView-Engine to obtain a private copy of the data
+ // that it refers to.
+ //
+ //-----------------------------------------------------------------------------
+
+ template <int Dim, class T>
+ Engine<Dim,T,CompressibleBrickView> &Engine<Dim,T,CompressibleBrickView>::makeOwnCopy()
+ {
+ // JIM: This is probably not thread safe???
+ // There is a race from checking isShared to getting into cblock's
+ // makeOwnCopy, which is thread safe. As a result, this should only
+ // be called after a blockAndEvaluate() to ensure that nobody else
+ // is messing with the underlying CBC while this is
+ // occuring. (Logically, this is necessary anyway since you probably
+ // want a copy of the data that results from all previous
+ // computations having taken place.) Also, as mentioned elsewhere,
+ // the current implementation results in copying uncompressed data
+ // in the parse thread, which will result in incorrect memory
+ // affinity.
+
+ if (cblock_m.isControllerValidUnlocked() && cblock_m.isShared())
+ {
+ cblock_m.detach(this);
+ cblock_m.makeOwnCopy();
+ cblock_m.attach(this);
+
+ data0_m = cblock_m.data() + (cblock_m.compressed() ? 0 : baseOffset());
+ }
+
+ return *this;
+ }
+
+ //-----------------------------------------------------------------------------
+ //
// Engine<Dim, T, CompressibleBrickView>::
// elementsCompressed() const
//
Index: Engine/CompressibleBrick.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Engine/CompressibleBrick.h,v
retrieving revision 1.67
diff -c -p -r1.67 CompressibleBrick.h
*** Engine/CompressibleBrick.h 2000/07/11 23:06:40 1.67
--- Engine/CompressibleBrick.h 2001/05/11 02:37:14
*************** public:
*** 237,242 ****
--- 237,250 ----
inline Layout_t layout() const { return Layout_t(domain_m); }
+ //---------------------------------------------------------------------------
+ // Return the domain and base domain.
+
+ inline const Domain_t &domain() const
+ {
+ return layout().domain();
+ }
+
// Get a private copy of data viewed by this Engine.
Engine_t &makeOwnCopy();
*************** public:
*** 557,562 ****
--- 565,582 ----
ElementRef_t operator()(const Loc<Dim> &) const;
Element_t read(const Loc<Dim> &) const;
+ //---------------------------------------------------------------------------
+ // Return the domain and base domain.
+
+ inline const Domain_t &domain() const
+ {
+ return Layout_t(domain_m).domain();
+ }
+
+ // Get a private copy of data viewed by this Engine.
+
+ Engine_t &makeOwnCopy();
+
// Return the block controller (uncompressed).
// See comments in CompressibleBrick above.
*************** struct NewEngine<Engine<Dim,T,Compressib
*** 801,806 ****
--- 821,831 ----
template <int Dim, class T>
struct ElementProperties<Engine<Dim, T, CompressibleBrick> >
: public MakeOwnCopyProperties<Engine<Dim, T, CompressibleBrick> >
+ { };
+
+ template <int Dim, class T>
+ struct ElementProperties<Engine<Dim, T, CompressibleBrickView> >
+ : public MakeOwnCopyProperties<Engine<Dim, T, CompressibleBrickView> >
{ };
Index: Layout/Node.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Layout/Node.h,v
retrieving revision 1.35
diff -c -p -r1.35 Node.h
*** Layout/Node.h 2001/05/04 15:41:28 1.35
--- Layout/Node.h 2001/05/11 02:37:15
*************** public:
*** 121,128 ****
Node(const Domain_t &owned, const AllocatedDomain_t &allocated,
Context_t c, ID_t gid, ID_t lid = (-1))
: domain_m(owned), allocated_m(allocated),
! context_m(c), global_m(gid), local_m(lid),
! affinity_m(-1)
{
PAssert(owned.size() >= 0);
PAssert(allocated.size() >= 0);
--- 121,128 ----
Node(const Domain_t &owned, const AllocatedDomain_t &allocated,
Context_t c, ID_t gid, ID_t lid = (-1))
: domain_m(owned), allocated_m(allocated),
! local_m(lid), global_m(gid),
! context_m(c), affinity_m(-1)
{
PAssert(owned.size() >= 0);
PAssert(allocated.size() >= 0);
*************** public:
*** 130,137 ****
}
Node(const Domain_t &d, Context_t c, ID_t gid, ID_t lid = (-1))
! : domain_m(d), allocated_m(d), context_m(c), global_m(gid), local_m(lid),
! affinity_m(-1)
{
PAssert(d.size() >= 0);
PAssert(gid >= 0);
--- 130,138 ----
}
Node(const Domain_t &d, Context_t c, ID_t gid, ID_t lid = (-1))
! : domain_m(d), allocated_m(d),
! local_m(lid), global_m(gid),
! context_m(c), affinity_m(-1)
{
PAssert(d.size() >= 0);
PAssert(gid >= 0);
*************** public:
*** 152,159 ****
Node(int affinity, const Domain_t &d,
Context_t c, ID_t gid, ID_t lid = (-1))
! : domain_m(d), allocated_m(d), context_m(c), global_m(gid), local_m(lid),
! affinity_m(affinity)
{
PAssert(d.size() >= 0);
PAssert(gid >= 0);
--- 153,161 ----
Node(int affinity, const Domain_t &d,
Context_t c, ID_t gid, ID_t lid = (-1))
! : domain_m(d), allocated_m(d),
! local_m(lid), global_m(gid),
! context_m(c), affinity_m(affinity)
{
PAssert(d.size() >= 0);
PAssert(gid >= 0);
*************** public:
*** 172,180 ****
template<class ODom, class OAlloc>
Node(const Node<ODom,OAlloc> &n)
! : domain_m(n.domain()), context_m(n.context()), allocated_m(n.allocated()),
! global_m(n.globalID()), local_m(n.localID()),
! affinity_m(n.affinity())
{
}
--- 174,182 ----
template<class ODom, class OAlloc>
Node(const Node<ODom,OAlloc> &n)
! : domain_m(n.domain()), allocated_m(n.allocated()),
! local_m(n.localID()), global_m(n.globalID()),
! context_m(n.context()), affinity_m(n.affinity())
{
}
Index: NewField/FieldEngine/FieldEngine.NoGeometry.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/NewField/FieldEngine/FieldEngine.NoGeometry.h,v
retrieving revision 1.4
diff -c -p -r1.4 FieldEngine.NoGeometry.h
*** NewField/FieldEngine/FieldEngine.NoGeometry.h 2001/04/10 23:13:25 1.4
--- NewField/FieldEngine/FieldEngine.NoGeometry.h 2001/05/11 02:37:15
*************** public:
*** 254,267 ****
// This field-engine always has vert-centering and the total domain is
// given by the engine.
! inline const Domain_t &physicalCellDomain() const
{
! return shrink(physicalDomain(), 1);
}
inline Domain_t totalCellDomain() const
{
! return shrink(engine_m.domain(), 1);
}
Domain_t physicalDomain() const
--- 254,267 ----
// This field-engine always has vert-centering and the total domain is
// given by the engine.
! inline const Domain_t physicalCellDomain() const
{
! return shrinkRight(physicalDomain(), 1);
}
inline Domain_t totalCellDomain() const
{
! return shrinkRight(engine_m.domain(), 1);
}
Domain_t physicalDomain() const
More information about the pooma-dev
mailing list