-
-
Notifications
You must be signed in to change notification settings - Fork 13.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
parmetis: Use petsc bitbucket source instead of glaros
This is needed as the upstream source is quite unreliable, timing out in many cases. petsc has an adjusted version of the source.
- Loading branch information
1 parent
db2396c
commit fbff98c
Showing
2 changed files
with
279 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,260 @@ | ||
diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
index 911a32d..c55ff11 100644 | ||
--- a/CMakeLists.txt | ||
+++ b/CMakeLists.txt | ||
@@ -1,8 +1,8 @@ | ||
cmake_minimum_required(VERSION 2.8) | ||
project(ParMETIS C) | ||
|
||
-set(GKLIB_PATH ${CMAKE_CURRENT_SOURCE_DIR}/metis/GKlib CACHE PATH "path to GKlib") | ||
-set(METIS_PATH ${CMAKE_CURRENT_SOURCE_DIR}/metis CACHE PATH "path to METIS") | ||
+set(GKLIB_PATH ${CMAKE_CURRENT_SOURCE_DIR}/headers CACHE PATH "path to GKlib") | ||
+set(METIS_PATH ${CMAKE_CURRENT_SOURCE_DIR}/headers CACHE PATH "path to METIS") | ||
|
||
# Search for MPI. | ||
# GK commented this out as it seems to be creating problems | ||
diff --git a/headers/gk_externs.h b/headers/gk_externs.h | ||
index e63f2ab..c31b3a7 100644 | ||
--- a/headers/gk_externs.h | ||
+++ b/headers/gk_externs.h | ||
@@ -14,16 +14,11 @@ | ||
/************************************************************************* | ||
* Extern variable definition. Hopefully, the __thread makes them thread-safe. | ||
**************************************************************************/ | ||
- | ||
-/* include the definition of metis__thread; it is assumed that | ||
- gklib_tls.h will be installed 'globally' i.e. into $PREFIX */ | ||
-#include <gklib_tls.h> | ||
- | ||
#ifndef _GK_ERROR_C_ | ||
/* declared in error.c */ | ||
-extern metis__thread int gk_cur_jbufs; | ||
-extern metis__thread jmp_buf gk_jbufs[]; | ||
-extern metis__thread jmp_buf gk_jbuf; | ||
+extern __thread int gk_cur_jbufs; | ||
+extern __thread jmp_buf gk_jbufs[]; | ||
+extern __thread jmp_buf gk_jbuf; | ||
|
||
#endif | ||
|
||
diff --git a/headers/gklib_defs.h b/headers/gklib_defs.h | ||
new file mode 100644 | ||
index 0000000..dfac5ca | ||
--- /dev/null | ||
+++ b/headers/gklib_defs.h | ||
@@ -0,0 +1,53 @@ | ||
+/*! | ||
+\file | ||
+\brief Data structures and prototypes for GKlib integration | ||
+ | ||
+\date Started 12/23/2008 | ||
+\author George | ||
+\version\verbatim $Id: gklib_defs.h 10395 2011-06-23 23:28:06Z karypis $ \endverbatim | ||
+*/ | ||
+ | ||
+#ifndef _LIBMETIS_GKLIB_H_ | ||
+#define _LIBMETIS_GKLIB_H_ | ||
+ | ||
+#include "gklib_rename.h" | ||
+ | ||
+/*************************************************************************/ | ||
+/*! Stores a weighted edge */ | ||
+/*************************************************************************/ | ||
+typedef struct { | ||
+ idx_t u, v, w; /*!< Edge (u,v) with weight w */ | ||
+} uvw_t; | ||
+ | ||
+/************************************************************************* | ||
+* Define various data structure using GKlib's templates. | ||
+**************************************************************************/ | ||
+GK_MKKEYVALUE_T(ikv_t, idx_t, idx_t) | ||
+GK_MKKEYVALUE_T(rkv_t, real_t, idx_t) | ||
+GK_MKPQUEUE_T(ipq_t, ikv_t) | ||
+GK_MKPQUEUE_T(rpq_t, rkv_t) | ||
+ | ||
+ | ||
+/* gklib.c */ | ||
+GK_MKBLAS_PROTO(i, idx_t, idx_t) | ||
+GK_MKBLAS_PROTO(r, real_t, real_t) | ||
+GK_MKALLOC_PROTO(i, idx_t) | ||
+GK_MKALLOC_PROTO(r, real_t) | ||
+GK_MKALLOC_PROTO(ikv, ikv_t) | ||
+GK_MKALLOC_PROTO(rkv, rkv_t) | ||
+GK_MKPQUEUE_PROTO(ipq, ipq_t, idx_t, idx_t) | ||
+GK_MKPQUEUE_PROTO(rpq, rpq_t, real_t, idx_t) | ||
+GK_MKRANDOM_PROTO(i, idx_t, idx_t) | ||
+GK_MKARRAY2CSR_PROTO(i, idx_t) | ||
+void isorti(size_t n, idx_t *base); | ||
+void isortd(size_t n, idx_t *base); | ||
+void rsorti(size_t n, real_t *base); | ||
+void rsortd(size_t n, real_t *base); | ||
+void ikvsorti(size_t n, ikv_t *base); | ||
+void ikvsortii(size_t n, ikv_t *base); | ||
+void ikvsortd(size_t n, ikv_t *base); | ||
+void rkvsorti(size_t n, rkv_t *base); | ||
+void rkvsortd(size_t n, rkv_t *base); | ||
+void uvwsorti(size_t n, uvw_t *base); | ||
+ | ||
+#endif | ||
diff --git a/headers/gklib_rename.h b/headers/gklib_rename.h | ||
new file mode 100644 | ||
index 0000000..78dc8b3 | ||
--- /dev/null | ||
+++ b/headers/gklib_rename.h | ||
@@ -0,0 +1,122 @@ | ||
+/*! | ||
+\file | ||
+ | ||
+ * Copyright 1997, Regents of the University of Minnesota | ||
+ * | ||
+ * This file contains header files | ||
+ * | ||
+ * Started 10/2/97 | ||
+ * George | ||
+ * | ||
+ * $Id: gklib_rename.h 10395 2011-06-23 23:28:06Z karypis $ | ||
+ * | ||
+ */ | ||
+ | ||
+ | ||
+#ifndef _LIBMETIS_GKLIB_RENAME_H_ | ||
+#define _LIBMETIS_GKLIB_RENAME_H_ | ||
+ | ||
+/* gklib.c - generated from the .o files using the ./utils/listundescapedsumbols.csh */ | ||
+#define iAllocMatrix libmetis__iAllocMatrix | ||
+#define iFreeMatrix libmetis__iFreeMatrix | ||
+#define iSetMatrix libmetis__iSetMatrix | ||
+#define iargmax libmetis__iargmax | ||
+#define iargmax_n libmetis__iargmax_n | ||
+#define iargmin libmetis__iargmin | ||
+#define iarray2csr libmetis__iarray2csr | ||
+#define iaxpy libmetis__iaxpy | ||
+#define icopy libmetis__icopy | ||
+#define idot libmetis__idot | ||
+#define iincset libmetis__iincset | ||
+#define ikvAllocMatrix libmetis__ikvAllocMatrix | ||
+#define ikvFreeMatrix libmetis__ikvFreeMatrix | ||
+#define ikvSetMatrix libmetis__ikvSetMatrix | ||
+#define ikvcopy libmetis__ikvcopy | ||
+#define ikvmalloc libmetis__ikvmalloc | ||
+#define ikvrealloc libmetis__ikvrealloc | ||
+#define ikvset libmetis__ikvset | ||
+#define ikvsmalloc libmetis__ikvsmalloc | ||
+#define ikvsortd libmetis__ikvsortd | ||
+#define ikvsorti libmetis__ikvsorti | ||
+#define ikvsortii libmetis__ikvsortii | ||
+#define imalloc libmetis__imalloc | ||
+#define imax libmetis__imax | ||
+#define imin libmetis__imin | ||
+#define inorm2 libmetis__inorm2 | ||
+#define ipqCheckHeap libmetis__ipqCheckHeap | ||
+#define ipqCreate libmetis__ipqCreate | ||
+#define ipqDelete libmetis__ipqDelete | ||
+#define ipqDestroy libmetis__ipqDestroy | ||
+#define ipqFree libmetis__ipqFree | ||
+#define ipqGetTop libmetis__ipqGetTop | ||
+#define ipqInit libmetis__ipqInit | ||
+#define ipqInsert libmetis__ipqInsert | ||
+#define ipqLength libmetis__ipqLength | ||
+#define ipqReset libmetis__ipqReset | ||
+#define ipqSeeKey libmetis__ipqSeeKey | ||
+#define ipqSeeTopKey libmetis__ipqSeeTopKey | ||
+#define ipqSeeTopVal libmetis__ipqSeeTopVal | ||
+#define ipqUpdate libmetis__ipqUpdate | ||
+#define isrand libmetis__isrand | ||
+#define irand libmetis__irand | ||
+#define irandArrayPermute libmetis__irandArrayPermute | ||
+#define irandArrayPermuteFine libmetis__irandArrayPermuteFine | ||
+#define irandInRange libmetis__irandInRange | ||
+#define irealloc libmetis__irealloc | ||
+#define iscale libmetis__iscale | ||
+#define iset libmetis__iset | ||
+#define ismalloc libmetis__ismalloc | ||
+#define isortd libmetis__isortd | ||
+#define isorti libmetis__isorti | ||
+#define isrand libmetis__isrand | ||
+#define isum libmetis__isum | ||
+#define rAllocMatrix libmetis__rAllocMatrix | ||
+#define rFreeMatrix libmetis__rFreeMatrix | ||
+#define rSetMatrix libmetis__rSetMatrix | ||
+#define rargmax libmetis__rargmax | ||
+#define rargmax_n libmetis__rargmax_n | ||
+#define rargmin libmetis__rargmin | ||
+#define raxpy libmetis__raxpy | ||
+#define rcopy libmetis__rcopy | ||
+#define rdot libmetis__rdot | ||
+#define rincset libmetis__rincset | ||
+#define rkvAllocMatrix libmetis__rkvAllocMatrix | ||
+#define rkvFreeMatrix libmetis__rkvFreeMatrix | ||
+#define rkvSetMatrix libmetis__rkvSetMatrix | ||
+#define rkvcopy libmetis__rkvcopy | ||
+#define rkvmalloc libmetis__rkvmalloc | ||
+#define rkvrealloc libmetis__rkvrealloc | ||
+#define rkvset libmetis__rkvset | ||
+#define rkvsmalloc libmetis__rkvsmalloc | ||
+#define rkvsortd libmetis__rkvsortd | ||
+#define rkvsorti libmetis__rkvsorti | ||
+#define rmalloc libmetis__rmalloc | ||
+#define rmax libmetis__rmax | ||
+#define rmin libmetis__rmin | ||
+#define rnorm2 libmetis__rnorm2 | ||
+#define rpqCheckHeap libmetis__rpqCheckHeap | ||
+#define rpqCreate libmetis__rpqCreate | ||
+#define rpqDelete libmetis__rpqDelete | ||
+#define rpqDestroy libmetis__rpqDestroy | ||
+#define rpqFree libmetis__rpqFree | ||
+#define rpqGetTop libmetis__rpqGetTop | ||
+#define rpqInit libmetis__rpqInit | ||
+#define rpqInsert libmetis__rpqInsert | ||
+#define rpqLength libmetis__rpqLength | ||
+#define rpqReset libmetis__rpqReset | ||
+#define rpqSeeKey libmetis__rpqSeeKey | ||
+#define rpqSeeTopKey libmetis__rpqSeeTopKey | ||
+#define rpqSeeTopVal libmetis__rpqSeeTopVal | ||
+#define rpqUpdate libmetis__rpqUpdate | ||
+#define rrealloc libmetis__rrealloc | ||
+#define rscale libmetis__rscale | ||
+#define rset libmetis__rset | ||
+#define rsmalloc libmetis__rsmalloc | ||
+#define rsortd libmetis__rsortd | ||
+#define rsorti libmetis__rsorti | ||
+#define rsum libmetis__rsum | ||
+#define uvwsorti libmetis__uvwsorti | ||
+ | ||
+#endif | ||
+ | ||
+ | ||
diff --git a/libparmetis/parmetislib.h b/libparmetis/parmetislib.h | ||
index 0f2ed89..993f108 100644 | ||
--- a/libparmetis/parmetislib.h | ||
+++ b/libparmetis/parmetislib.h | ||
@@ -16,11 +16,11 @@ | ||
#define DMALLOC 1 | ||
*/ | ||
|
||
-#include <GKlib.h> | ||
+#include "GKlib.h" | ||
|
||
#include <parmetis.h> | ||
|
||
-#include <gklib_defs.h> | ||
+#include "gklib_defs.h" | ||
|
||
#include <mpi.h> | ||
|
||
diff --git a/programs/parmetisbin.h b/programs/parmetisbin.h | ||
index 6590087..80eec81 100644 | ||
--- a/programs/parmetisbin.h | ||
+++ b/programs/parmetisbin.h | ||
@@ -16,9 +16,9 @@ | ||
#define DMALLOC 1 | ||
*/ | ||
|
||
-#include <GKlib.h> | ||
+#include "GKlib.h" | ||
#include <parmetis.h> | ||
-#include <gklib_defs.h> | ||
+#include "gklib_defs.h" | ||
|
||
#include "../libparmetis/rename.h" | ||
#include "../libparmetis/defs.h" |