0

Installation of TOUGH2-MP with METIS Version 5

TOUGH2-MP uses METIS for graph partitioning.

Issue: TOUGH2-MP Does Not Run with New METIS Version

In June of 2011, a new version of METIS became available.Version 5 of METIS made some API changes (http://glaros.dtc.umn.edu/gkhome/metis/metis/changes), which are not compatible with the API implemented in TOUGH2-MP.

Solution 1: Use Version 4 of METIS

To get the current version of TOUGH2-MP to work, obtain Version 4 of METIS. Older versions of METIS can be found athttp://glaros.dtc.umn.edu/gkhome/fsroot/sw/metis/OLD. We recommend Version 4.0.3.

Solution 2: Adapt METIS Calls to API of METIS Version 5

Modify the TOUGH2-MP fortran (Main_Comp.f) to use the new API of METIS Version 5.

To change the TOUGH2-MP Fortran source code, edit file Main_Comp.f and replace thefollowing section:

if (PartReady==0) then

nparts = nprocs

if (EE_partitioner .EQ. 'METIS_Kway') then

call METIS_PartGraphKway(nel, XADJ, ADJ,

& NULL, NULL, 0, 1, nparts, 0, edgecut, part)

elseif (EE_partitioner .EQ. 'METIS_VKway') then

call METIS_PartGraphVKway(nel, XADJ, ADJ,

& NULL, NULL, 0, 1, nparts, 0, edgecut, part)

elseif (EE_partitioner .EQ. 'METIS_Recursive') then

call METIS_PartGraphRecursive(nel, XADJ, ADJ,

& NULL, NULL, 0, 1, nparts, 0, edgecut, part)

end if

else

with:

if (PartReady==0) then

nparts = nprocs

if (EE_partitioner .EQ. 'METIS_Kway') then

call METIS_Partition_KWay_EdgeCut_Unweighted(nel, XADJ,

& ADJ, nparts, edgecut, part)

elseif (EE_partitioner .EQ. 'METIS_VKway') then

call METIS_Partition_KWay_Volume_Unweighted(nel, XADJ,

& ADJ, nparts, edgecut, part)

elseif (EE_partitioner .EQ. 'METIS_Recursive') then

call METIS_Partition_Recursive_Unweighted(nel, XADJ,

& ADJ, nparts, edgecut, part)

end if

else

Note that TOUGH2-MP has not been fully tested with METIS Version 5.

Reply

null