[Trilinos-Users] [EXTERNAL] Zoltan2 RCB Bounding box algorithm not implemented

Devine, Karen D kddevin at sandia.gov
Tue Aug 4 10:23:15 EDT 2015


Abhishek: Zoltan2 should work fine with all data initially on one process. The error appears to be coming from metric calculation. Try setting parameter compute_metrics to "no" and let me know if the problem goes away. If not, let me know which method you are using and I will try to reproduce the problem. If it does go away, we will fix the metric code, but your partition should be fine.
Kare




On Aug 4, 2015, at 1:40 AM, Abhishek Kumar <abhishek.iitd16 at gmail.com<mailto:abhishek.iitd16 at gmail.com>> wrote:

Karen,

How to do partitioning using Zoltan2 if only 1 out of 4 processes has the data? So effectively data passed to input adapter are just null pointers for rest of the 3 processes. Is this supported? Or do I have to manually distribute the data and then do the partitioning?

Currently I have the data only in one processes and it is throwing following exception on problem->solve(); I tried going through the trace but it just an assertion which is failing because part size is 0 and hence returning a null.

libc++abi.dylib: terminating with uncaught exception of type std::runtime_error: 1: /Users/abhishek/Work/sources/trilinos/packages/zoltan2/src/util/Zoltan2_Metric.hpp,892
1: error: parts not set

libc++abi.dylib: terminating with uncaught exception of type std::runtime_error: 2: /Users/abhishek/Work/sources/trilinos/packages/zoltan2/src/util/Zoltan2_Metric.hpp,892
2: error: parts not set

libc++abi.dylib: terminating with uncaught exception of type std::runtime_error: 3: /Users/abhishek/Work/sources/trilinos/packages/zoltan2/src/util/Zoltan2_Metric.hpp,892
3: error: parts not set

Thanks,
Abhishek

On Fri, Jul 10, 2015 at 12:58 AM, Devine, Karen D <kddevin at sandia.gov<mailto:kddevin at sandia.gov>> wrote:
Zoltan2's interface differs from Zoltan's.  Zoltan2 does not use callbacks to implement a partitioning algorithms' model. Instead, it uses adapters that describe the user's data in a way that allows Zoltan2 to implement the model it needs.   Adapters are defined for matrices, meshes, graphs, and vectors.  Specific instantiations are provided for Trilinos classes in Tpetra, Epetra, and Pamgen, as well as data in C-style arrays.  Examples using the adapters are in the directories zoltan2/example and zoltan2/test/partition.

Migration is implemented in the adapters' method applyPartitioningSolution.  An example using this method is in zoltan2/test/partition/partitioning1.cpp.

To help with your transition from Zoltan to Zoltan2, you could transition in stages.  For example, you could use Zoltan2's Multijagged method for partitioning, and Zoltan's Help_Migrate function for the migration.  Or you could use Zoltan's Help_Migrate to implement applyPartitioningSolution in your adapter.  That way, you could test your changes more incrementally.



From: Abhishek Kumar <abhishek.iitd16 at gmail.com<mailto:abhishek.iitd16 at gmail.com>>
Date: Thursday, July 9, 2015 at 11:01 AM
To: KDevine <kddevin at sandia.gov<mailto:kddevin at sandia.gov>>
Cc: "trilinos-users at trilinos.org<mailto:trilinos-users at trilinos.org>" <trilinos-users at trilinos.org<mailto:trilinos-users at trilinos.org>>
Subject: Re: [EXTERNAL] [Trilinos-Users] Zoltan2 RCB Bounding box algorithm not implemented

Karen,

Thanks for the response but I have some more doubts about Zoltan2 implementation.

How do we migrate data in Zoltan2? I couldn't find any function for that. In Zoltan we could attach callbacks to Zoltan handle which would pack data, migrate points and unpack data followed by migration of corresponding cells, bounding boxes etc.

Have the callbacks are completely removed from Zoltan2 or they have not been implemented yet? And how do we perform the migration step in Zoltan2 or we'll have to do it manually? Please share any examples you might have of Zoltan2 for the same.


On Wed, Jul 8, 2015 at 8:47 PM, Devine, Karen D <kddevin at sandia.gov<mailto:kddevin at sandia.gov>> wrote:
I suggest you use the multijagged partitioner in Zoltan2.  Like RCB, it is a geometric method, so you would need to change only one parameter to use it (algorithm == multijagged).  The bounding boxes are implemented for multijagged.


From: Trilinos-Users <trilinos-users-bounces at trilinos.org<mailto:trilinos-users-bounces at trilinos.org>> on behalf of Abhishek Kumar <abhishek.iitd16 at gmail.com<mailto:abhishek.iitd16 at gmail.com>>
Date: Tuesday, July 7, 2015 at 11:42 PM
To: "trilinos-users at trilinos.org<mailto:trilinos-users at trilinos.org>" <trilinos-users at trilinos.org<mailto:trilinos-users at trilinos.org>>
Subject: [EXTERNAL] [Trilinos-Users] Zoltan2 RCB Bounding box algorithm not implemented

Hello all,

I am working on an application <http://github.com/biddisco/pv-zoltan> which partitions the data using Zoltan using RCB algorithm and obtains bounding boxes for each partition. Currently I am trying to replace Zoltan calls by Zoltan2 for my gsoc project. But turns out Zoltan2 is still not fully implemented in Zoltan2.

Zoltan2 has a function getPartBoxesView(). But it has not been implemented for RCB algorithm yet. So it throws runtime error saying "getPartBoxesView is not implemented in selected algorithm".

Can you please guide me how can I solve this problem? Or redirect me to related references/code fragments which might help me implementing this function?

--
Regards

Abhishek Kumar
abhishekkumar.me<http://abhishekkumar.me>
Senior Undergraduate, IIT Delhi CSE



--
Regards

Abhishek Kumar
abhishekkumar.me<http://abhishekkumar.me>
Senior Undergraduate, IIT Delhi CSE

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://trilinos.org/pipermail/trilinos-users/attachments/20150804/9ac59073/attachment.html>


More information about the Trilinos-Users mailing list