[Users] Recent Carpet changes

Erik Schnetter schnetter at cct.lsu.edu
Sat Jun 8 11:07:41 CDT 2013

As announced in our weekly phone calls, I just committed a set of changes
to Carpet. These changes will in the future significantly improve parallel
scaling, but also touch much of the low-level code. There is thus a certain
inherent danger that something broke. However, I expect that these build
and run fine.

The performance-improving features are disabled by default, and require
setting compile-time flags to enable them. This will replace the current
bboxset set class by a new implementation build on a tree structure. With
this improvement, I was able to run Carpet on 260k cores (8k nodes) on Blue

For the curious cats among us: these flags are

-DCARPET_ENABLE_BBOXSET2: build (but do not use) the new class (for testing)
-DCARPET_USE_BBOXSET2: use the new class instead of the old (if enabled)

The new implementation requires certain C++11 features that may not be
present on older compilers. In this case, you may have to set some of the
macros below to activate work-arounds. You may also need to build the Boost

-DCARPET_AVOID_LAMBDA: Use macros instead of lambda expressions
   Lambda expressions simplify writing iterators for data structures.

-DCARPET_USE_BOOST_FOREACH: Use Boost's FOREACH instead of C++11
range-based for loops
   Range-based for loops are syntactic sugar for using iterators that
(finally!) lead to shorter, simpler code when using iterators.

-DCARPET_USE_BOOST_SHARED_PTR: Use Boost's shared_ptr instead of the C++11
   shared_ptr automatically call delete when necessary when pointers go out
of scope, simplifying code and increasing safety.


Erik Schnetter <schnetter at cct.lsu.edu>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.einsteintoolkit.org/pipermail/users/attachments/20130608/795b726a/attachment.html 

More information about the Users mailing list