metis idx_t

Issue #40 resolved
Iulian Grindeanu created an issue

we need to emphasize that metis needs to be configured with 32 bit integer
#define IDXTYPEWIDTH 32 at metis.h

otherwise might have compiling issues at: ...

 int nelems;
 metis_RESULT = METIS_PartGraphKway(&nelems, &nconstraints, &

Comments (6)

  1. Iulian Grindeanu reporter

    the correct fix is to modify our source code, to use idx_t where necessary; it will complicate though our stuff, because we have to be careful when we convert from our entity handle to idx_t, or when we set the tags; one example is that assigned parts should be returned in idx_t array; but we like to set as integer tags (size 4);

    the disadvantage of doing nothing is that with the current code we will never be able to partition a 2B mesh . We cannot do that anyway, unless we modify the partitioner to work in parallel.

  2. Vijay M

    I had a branch with precisely this change. I should revive that again and submit a PR for it.

    Vijay

  3. Vijay M

    @iulian07 If my branch supports configuration with 64-bit indices, I can submit a PR with it. Let me know after verification. I also need to rebase.

  4. Iulian Grindeanu reporter

    needs more work, because of int/ long issue; for example, our global id tag is 4 bytes, but we use calls like

           idx_t neighbors[5*MAX_SUB_ENTITIES];
           result = mbImpl->tag_get_data(gid, adjs, neighbors);MB_CHK_ERR(result);
    

    this does not work for gid when idx_t is 64 bits

  5. Log in to comment