(0 comments)

We do our best to insulate our users from needing to think about parallel issues in their applications. However, even with our best efforts there are still times when you need to perform your own MPI communication... but even in those cases we provide helper functions.

Today we made changes to the way you access those helper functions. In the past we were utilizing a "global" MPI_COMM_WORLD in those helper functions. This created quite a bit of trouble when we wanted to run many MOOSE-based applications on separate communicators (such as with MultiApp). With the change today, every MOOSE-based object has access to the "correct" communicator it is supposed to be using.

So, in the past you might have used functions that looked like this:

libMesh::n_processors()
libMesh::processor_id()
Parallel::max()
Parallel::send()

Now you will access these same functions using:

n_processors()
processor_id()
_communicator.max()
_communicator.send()

Basically: every MOOSE object gained the two functions n_processors() and processord_id() they also gained a _communicator member variable that can be utilized to call our MPI helpers. For a complete list of the functions you can call on a _communicator please see the libMesh Communicator Doxygen.

Your applications have been modified to reflect these changes.

The update_and_rebuild_libmesh.sh script has been modified to remove the configure flag for creating the COMM_WORLD we no longer depend on. From this moment forward you will get compile errors if you attempt to utilize one of the old functions. All of our testing infrastructure is in the process of being updated to reflect this so that you will see errors there if you try to use one of the old functions as well.

If you have any questions please mail the mailing list.

Currently unrated

Comments

There are currently no comments

New Comment

required

required (not published)

optional

R&D 100

Recent Blog Posts

Using our new clang-format Style

5 months, 1 week ago

Steady State Algorithm Change

1 year, 2 months ago

Making an App inherit from an App

1 year, 2 months ago

Changing a published API (Deprecation)

1 year, 2 months ago

DiscreteMaterial Objects

1 year, 5 months ago

Recent Posts

Archive

2017
2016
2015
2014

Tags

Authors

Feeds

RSS / Atom