This pull request adds a new public interface in PCU2.h that has every PCU function take the pcu state as it's first argument. This enables us to use PCU in a setting where we may have PCU operating over different communicator sets.
The other modification in this pull request is to remove the vtable from pcu_pmpi as it was used sporatically and the type was assumed most places. pcu_mpi and pcu_pmpi are not part of the public interface, so users should not have been making use of this interface.
Enable PCU to work without global/singleton data
This pull request adds a new public interface in
PCU2.h
that has every PCU function take thepcu
state as it's first argument. This enables us to use PCU in a setting where we may have PCU operating over different communicator sets.The other modification in this pull request is to remove the
vtable
frompcu_pmpi
as it was used sporatically and the type was assumed most places.pcu_mpi
andpcu_pmpi
are not part of the public interface, so users should not have been making use of this interface.