├── .gitignore ├── COPYRIGHT.txt ├── Fig10_grace.sh ├── Fig10_merci.sh ├── Fig10_metis.sh ├── Fig10_plot ├── fig10.py └── fig10_without_Metis.py ├── Fig10_space.sh ├── LICENSE.txt ├── README.md ├── count_lines_in_dataset.sh ├── dataset ├── dataset_preprocess.py ├── dblp_preprocess.py └── steam_preprocess.py ├── files.count ├── gapbs ├── CONTRIBUTING.md ├── LICENSE ├── Makefile ├── README.md ├── benchmark │ └── bench.mk ├── converter ├── run.sh ├── src │ ├── analyze.cc │ ├── bc.cc │ ├── benchmark.h │ ├── bfs.cc │ ├── bitmap.h │ ├── builder.h │ ├── cc.cc │ ├── cc_sv.cc │ ├── command_line.h │ ├── converter.cc │ ├── generator.h │ ├── gpm_triangles │ ├── gpm_triangles.cc │ ├── graph.h │ ├── platform_atomics.h │ ├── pr.cc │ ├── pr_spmv.cc │ ├── pvector.h │ ├── reader.h │ ├── sliding_queue.h │ ├── sssp.cc │ ├── tc.cc │ ├── timer.h │ ├── util.h │ └── writer.h └── test │ ├── graphs │ ├── 4.el │ ├── 4.gr │ ├── 4.graph │ ├── 4.mtx │ ├── 4.wel │ ├── 4w.graph │ └── 4w.mtx │ ├── reference │ ├── graph-4.el.out │ ├── graph-4.gr.out │ ├── graph-4.graph.out │ ├── graph-4.mtx.out │ ├── graph-4.wel.out │ ├── graph-4w.graph.out │ ├── graph-4w.mtx.out │ ├── graph-g10.out │ └── graph-u10.out │ └── test.mk ├── hbm_only_grace_inference_cnt.cc ├── hbm_only_merci_inference_cnt.cc ├── hbm_only_metis_inference_cnt.cc ├── hbm_only_space_inference_cnt.cc ├── metis └── metis-5.1.0 │ ├── BUILD-Windows.txt │ ├── BUILD.txt │ ├── CMakeLists.txt │ ├── Changelog │ ├── GKlib │ ├── BUILD.txt │ ├── CMakeLists.txt │ ├── GKlib.h │ ├── GKlibSystem.cmake │ ├── Makefile │ ├── b64.c │ ├── blas.c │ ├── conf │ │ └── check_thread_storage.c │ ├── csr.c │ ├── error.c │ ├── evaluate.c │ ├── fkvkselect.c │ ├── fs.c │ ├── getopt.c │ ├── gk_arch.h │ ├── gk_defs.h │ ├── gk_externs.h │ ├── gk_getopt.h │ ├── gk_macros.h │ ├── gk_mkblas.h │ ├── gk_mkmemory.h │ ├── gk_mkpqueue.h │ ├── gk_mkpqueue2.h │ ├── gk_mkrandom.h │ ├── gk_mksort.h │ ├── gk_mkutils.h │ ├── gk_proto.h │ ├── gk_struct.h │ ├── gk_types.h │ ├── gkregex.c │ ├── gkregex.h │ ├── graph.c │ ├── htable.c │ ├── io.c │ ├── itemsets.c │ ├── mcore.c │ ├── memory.c │ ├── ms_inttypes.h │ ├── ms_stat.h │ ├── ms_stdint.h │ ├── omp.c │ ├── pdb.c │ ├── pqueue.c │ ├── random.c │ ├── rw.c │ ├── seq.c │ ├── sort.c │ ├── string.c │ ├── test │ │ ├── CMakeLists.txt │ │ ├── Makefile.in.old │ │ ├── Makefile.old │ │ ├── fis.c │ │ ├── gkgraph.c │ │ ├── gksort.c │ │ ├── rw.c │ │ └── strings.c │ ├── timers.c │ ├── tokenizer.c │ └── util.c │ ├── Install.txt │ ├── LICENSE.txt │ ├── Makefile │ ├── build │ ├── CMakeCache.txt │ ├── CMakeFiles │ │ ├── 3.16.3 │ │ │ ├── CMakeCCompiler.cmake │ │ │ ├── CMakeCXXCompiler.cmake │ │ │ ├── CMakeDetermineCompilerABI_C.bin │ │ │ ├── CMakeDetermineCompilerABI_CXX.bin │ │ │ ├── CMakeSystem.cmake │ │ │ ├── CompilerIdC │ │ │ │ ├── CMakeCCompilerId.c │ │ │ │ └── a.out │ │ │ └── CompilerIdCXX │ │ │ │ ├── CMakeCXXCompilerId.cpp │ │ │ │ └── a.out │ │ ├── CMakeOutput.log │ │ └── cmake.check_cache │ └── Linux-x86_64 │ │ ├── CMakeCache.txt │ │ ├── CMakeFiles │ │ ├── 3.16.3 │ │ │ ├── CMakeCCompiler.cmake │ │ │ ├── CMakeCXXCompiler.cmake │ │ │ ├── CMakeDetermineCompilerABI_C.bin │ │ │ ├── CMakeDetermineCompilerABI_CXX.bin │ │ │ ├── CMakeSystem.cmake │ │ │ ├── CompilerIdC │ │ │ │ ├── CMakeCCompilerId.c │ │ │ │ └── a.out │ │ │ └── CompilerIdCXX │ │ │ │ ├── CMakeCXXCompilerId.cpp │ │ │ │ └── a.out │ │ ├── CMakeDirectoryInformation.cmake │ │ ├── CMakeOutput.log │ │ ├── Makefile.cmake │ │ ├── Makefile2 │ │ ├── TargetDirectories.txt │ │ ├── cmake.check_cache │ │ └── progress.marks │ │ ├── Makefile │ │ ├── cmake_install.cmake │ │ ├── include │ │ ├── CMakeFiles │ │ │ ├── CMakeDirectoryInformation.cmake │ │ │ └── progress.marks │ │ ├── Makefile │ │ └── cmake_install.cmake │ │ ├── install_manifest.txt │ │ ├── libmetis │ │ ├── CMakeFiles │ │ │ ├── CMakeDirectoryInformation.cmake │ │ │ ├── metis.dir │ │ │ │ ├── C.includecache │ │ │ │ ├── DependInfo.cmake │ │ │ │ ├── __ │ │ │ │ │ └── GKlib │ │ │ │ │ │ ├── b64.c.o │ │ │ │ │ │ ├── blas.c.o │ │ │ │ │ │ ├── csr.c.o │ │ │ │ │ │ ├── error.c.o │ │ │ │ │ │ ├── evaluate.c.o │ │ │ │ │ │ ├── fkvkselect.c.o │ │ │ │ │ │ ├── fs.c.o │ │ │ │ │ │ ├── getopt.c.o │ │ │ │ │ │ ├── gkregex.c.o │ │ │ │ │ │ ├── graph.c.o │ │ │ │ │ │ ├── htable.c.o │ │ │ │ │ │ ├── io.c.o │ │ │ │ │ │ ├── itemsets.c.o │ │ │ │ │ │ ├── mcore.c.o │ │ │ │ │ │ ├── memory.c.o │ │ │ │ │ │ ├── omp.c.o │ │ │ │ │ │ ├── pdb.c.o │ │ │ │ │ │ ├── pqueue.c.o │ │ │ │ │ │ ├── random.c.o │ │ │ │ │ │ ├── rw.c.o │ │ │ │ │ │ ├── seq.c.o │ │ │ │ │ │ ├── sort.c.o │ │ │ │ │ │ ├── string.c.o │ │ │ │ │ │ ├── timers.c.o │ │ │ │ │ │ ├── tokenizer.c.o │ │ │ │ │ │ └── util.c.o │ │ │ │ ├── auxapi.c.o │ │ │ │ ├── balance.c.o │ │ │ │ ├── bucketsort.c.o │ │ │ │ ├── build.make │ │ │ │ ├── checkgraph.c.o │ │ │ │ ├── cmake_clean.cmake │ │ │ │ ├── coarsen.c.o │ │ │ │ ├── compress.c.o │ │ │ │ ├── contig.c.o │ │ │ │ ├── debug.c.o │ │ │ │ ├── depend.internal │ │ │ │ ├── depend.make │ │ │ │ ├── flags.make │ │ │ │ ├── fm.c.o │ │ │ │ ├── fortran.c.o │ │ │ │ ├── frename.c.o │ │ │ │ ├── gklib.c.o │ │ │ │ ├── graph.c.o │ │ │ │ ├── initpart.c.o │ │ │ │ ├── kmetis.c.o │ │ │ │ ├── kwayfm.c.o │ │ │ │ ├── kwayrefine.c.o │ │ │ │ ├── link.txt │ │ │ │ ├── mcutil.c.o │ │ │ │ ├── mesh.c.o │ │ │ │ ├── meshpart.c.o │ │ │ │ ├── minconn.c.o │ │ │ │ ├── mincover.c.o │ │ │ │ ├── mmd.c.o │ │ │ │ ├── ometis.c.o │ │ │ │ ├── options.c.o │ │ │ │ ├── parmetis.c.o │ │ │ │ ├── pmetis.c.o │ │ │ │ ├── progress.make │ │ │ │ ├── refine.c.o │ │ │ │ ├── separator.c.o │ │ │ │ ├── sfm.c.o │ │ │ │ ├── srefine.c.o │ │ │ │ ├── stat.c.o │ │ │ │ ├── timing.c.o │ │ │ │ ├── util.c.o │ │ │ │ └── wspace.c.o │ │ │ └── progress.marks │ │ ├── Makefile │ │ ├── cmake_install.cmake │ │ └── libmetis.so │ │ └── programs │ │ ├── CMakeFiles │ │ ├── CMakeDirectoryInformation.cmake │ │ ├── cmpfillin.dir │ │ │ ├── C.includecache │ │ │ ├── DependInfo.cmake │ │ │ ├── build.make │ │ │ ├── cmake_clean.cmake │ │ │ ├── cmpfillin.c.o │ │ │ ├── depend.internal │ │ │ ├── depend.make │ │ │ ├── flags.make │ │ │ ├── io.c.o │ │ │ ├── link.txt │ │ │ ├── progress.make │ │ │ └── smbfactor.c.o │ │ ├── gpmetis.dir │ │ │ ├── C.includecache │ │ │ ├── DependInfo.cmake │ │ │ ├── build.make │ │ │ ├── cmake_clean.cmake │ │ │ ├── cmdline_gpmetis.c.o │ │ │ ├── depend.internal │ │ │ ├── depend.make │ │ │ ├── flags.make │ │ │ ├── gpmetis.c.o │ │ │ ├── io.c.o │ │ │ ├── link.txt │ │ │ ├── progress.make │ │ │ └── stat.c.o │ │ ├── graphchk.dir │ │ │ ├── C.includecache │ │ │ ├── DependInfo.cmake │ │ │ ├── build.make │ │ │ ├── cmake_clean.cmake │ │ │ ├── depend.internal │ │ │ ├── depend.make │ │ │ ├── flags.make │ │ │ ├── graphchk.c.o │ │ │ ├── io.c.o │ │ │ ├── link.txt │ │ │ └── progress.make │ │ ├── m2gmetis.dir │ │ │ ├── C.includecache │ │ │ ├── DependInfo.cmake │ │ │ ├── build.make │ │ │ ├── cmake_clean.cmake │ │ │ ├── cmdline_m2gmetis.c.o │ │ │ ├── depend.internal │ │ │ ├── depend.make │ │ │ ├── flags.make │ │ │ ├── io.c.o │ │ │ ├── link.txt │ │ │ ├── m2gmetis.c.o │ │ │ └── progress.make │ │ ├── mpmetis.dir │ │ │ ├── C.includecache │ │ │ ├── DependInfo.cmake │ │ │ ├── build.make │ │ │ ├── cmake_clean.cmake │ │ │ ├── cmdline_mpmetis.c.o │ │ │ ├── depend.internal │ │ │ ├── depend.make │ │ │ ├── flags.make │ │ │ ├── io.c.o │ │ │ ├── link.txt │ │ │ ├── mpmetis.c.o │ │ │ ├── progress.make │ │ │ └── stat.c.o │ │ ├── ndmetis.dir │ │ │ ├── C.includecache │ │ │ ├── DependInfo.cmake │ │ │ ├── build.make │ │ │ ├── cmake_clean.cmake │ │ │ ├── cmdline_ndmetis.c.o │ │ │ ├── depend.internal │ │ │ ├── depend.make │ │ │ ├── flags.make │ │ │ ├── io.c.o │ │ │ ├── link.txt │ │ │ ├── ndmetis.c.o │ │ │ ├── progress.make │ │ │ └── smbfactor.c.o │ │ └── progress.marks │ │ ├── Makefile │ │ ├── cmake_install.cmake │ │ ├── cmpfillin │ │ ├── gpmetis │ │ ├── graphchk │ │ ├── m2gmetis │ │ ├── mpmetis │ │ └── ndmetis │ ├── graphs │ ├── 4elt.graph │ ├── README │ ├── copter2.graph │ ├── mdual.graph │ ├── metis.mesh │ └── test.mgraph │ ├── include │ ├── CMakeLists.txt │ └── metis.h │ ├── libmetis │ ├── CMakeLists.txt │ ├── auxapi.c │ ├── balance.c │ ├── bucketsort.c │ ├── checkgraph.c │ ├── coarsen.c │ ├── compress.c │ ├── contig.c │ ├── debug.c │ ├── defs.h │ ├── fm.c │ ├── fortran.c │ ├── frename.c │ ├── gklib.c │ ├── gklib_defs.h │ ├── gklib_rename.h │ ├── graph.c │ ├── initpart.c │ ├── kmetis.c │ ├── kwayfm.c │ ├── kwayrefine.c │ ├── macros.h │ ├── mcutil.c │ ├── mesh.c │ ├── meshpart.c │ ├── metislib.h │ ├── minconn.c │ ├── mincover.c │ ├── mmd.c │ ├── ometis.c │ ├── options.c │ ├── parmetis.c │ ├── pmetis.c │ ├── proto.h │ ├── refine.c │ ├── rename.h │ ├── separator.c │ ├── sfm.c │ ├── srefine.c │ ├── stat.c │ ├── stdheaders.h │ ├── struct.h │ ├── timing.c │ ├── util.c │ └── wspace.c │ ├── manual │ └── manual.pdf │ ├── metis_test.py │ ├── programs │ ├── CMakeLists.txt │ ├── cmdline_gpmetis.c │ ├── cmdline_m2gmetis.c │ ├── cmdline_mpmetis.c │ ├── cmdline_ndmetis.c │ ├── cmpfillin.c │ ├── defs.h │ ├── gpmetis.c │ ├── graphchk.c │ ├── io.c │ ├── m2gmetis.c │ ├── metisbin.h │ ├── mpmetis.c │ ├── ndmetis.c │ ├── proto.h │ ├── smbfactor.c │ ├── stat.c │ └── struct.h │ ├── run_group.sh │ └── vsgen.bat ├── metis_installation.sh ├── port_dataset.py ├── prepare_pbuild_one_workload.sh ├── requirement.txt ├── run_base.sh ├── run_build_graph.sh ├── run_build_graph_all.sh ├── run_build_graph_group.sh ├── run_build_graph_merged.sh ├── run_build_graph_merged_group.sh ├── run_build_patoh.sh ├── run_clean_dataset.sh ├── run_cluster_patoh.sh ├── run_grace_hbm_only.sh ├── run_group_clean_dataset.sh ├── run_group_reformat.sh ├── run_merci_hbm_only.sh ├── run_merge_all.sh ├── run_merge_graph.sh ├── run_metis_hbm_only.sh ├── run_single_reformat.sh ├── run_space_hbm_only.sh ├── sls_clean_dataset.cc ├── sls_cluster_patoh.cc ├── sls_graph_base.cc ├── sls_graph_build.cc ├── sls_graph_build_merged.cc ├── sls_graph_patoh.cc ├── sls_merge_graph.cc ├── sls_reformat_trace.cc └── timer.h /.gitignore: -------------------------------------------------------------------------------- 1 | bin/* 2 | gapbs/bin/* 3 | gapbs/cluster/* 4 | gapbs/analyze 5 | grace_cluster/* 6 | graph/* 7 | hbm_only_*_log/* 8 | MERCI/ 9 | MERCI/* 10 | metis/metis-5.1.0/cluster/* 11 | post_trace/* 12 | result/* 13 | Fig10_plot/*.png 14 | Fig10_plot/*.txt 15 | dataset/anime/* 16 | dataset/clothes/* 17 | dataset/dblp/* 18 | dataset/merged/* 19 | dataset/movie/* 20 | dataset/office/* 21 | dataset/sports/* 22 | dataset/steam/* 23 | dataset/twitch/* -------------------------------------------------------------------------------- /COPYRIGHT.txt: -------------------------------------------------------------------------------- 1 | (c) The Regents of the University of Michigan https://cadre.eecs.umich.edu 2 | Authors: Haojie Ye, Sanketh Vedula, Yuhan Chen, Yichen Yang, Alex Bronstein, Ronald Dreslinski, Trevor Mudge, and Nishil Talati -------------------------------------------------------------------------------- /Fig10_grace.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | set -x 3 | 4 | mkdir -p grace_cluster/ 5 | cd gapbs; 6 | make 7 | ./run.sh steam 40 5 8 | ./run.sh anime 40 5 9 | ./run.sh movie 0 5 10 | ./run.sh dblp 50 3 11 | ./run.sh office 30 4 12 | ./run.sh twitch 40 5 13 | ./run.sh sports 10 4 14 | ./run.sh clothes 30 4 15 | ./run.sh M1 30 6 16 | ./run.sh M2 20 4 17 | ./run.sh M3 50 4 18 | ./run.sh M4 50 4 19 | cp -r cluster/*.cluster ../grace_cluster/ 20 | cd - 21 | 22 | 23 | ./run_grace_hbm_only.sh steam 40 5 24 | ./run_grace_hbm_only.sh anime 40 5 25 | ./run_grace_hbm_only.sh movie 0 5 26 | ./run_grace_hbm_only.sh dblp 50 3 27 | ./run_grace_hbm_only.sh office 30 4 28 | ./run_grace_hbm_only.sh twitch 40 5 29 | ./run_grace_hbm_only.sh sports 10 4 30 | ./run_grace_hbm_only.sh clothes 30 4 31 | ./run_grace_hbm_only.sh M1 30 6 32 | ./run_grace_hbm_only.sh M2 20 4 33 | ./run_grace_hbm_only.sh M3 50 4 34 | ./run_grace_hbm_only.sh M4 50 4 35 | 36 | 37 | 38 | 39 | echo "Fig. 10 GRACE finished" 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /Fig10_merci.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | set -x 3 | 4 | 5 | set -Eeuo pipefail 6 | set -e 7 | set -x 8 | 9 | 10 | workloads=("steam" "anime" "movie" "dblp" "office" "twitch" "sports" "clothes" "M1" "M2" "M3" "M4") 11 | # workloads=("anime") 12 | 13 | mkdir -p ./MERCI/graph 14 | mkdir -p ./MERCI/cluster 15 | 16 | # cluster 17 | for workload in "${workloads[@]}" 18 | do 19 | ./prepare_pbuild_one_workload.sh ${workload} & 20 | done 21 | wait 22 | 23 | # inference 24 | for workload in "${workloads[@]}" 25 | do 26 | ./run_merci_hbm_only.sh ${workload} & 27 | done 28 | wait 29 | 30 | 31 | 32 | echo "Fig. 10 MERCI finished" 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /Fig10_metis.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | set -x 3 | 4 | prepare_metis(){ 5 | workload=$1 6 | hbm_caps=("1.0") 7 | ## METIS 8 | export METIS_DLL=$PWD/metis/metis-5.1.0/build/Linux-x86_64/libmetis/libmetis.so 9 | line=$(ls -l | sed -n 3p result/base/base_result_${workload}_base/a_sls_graph_${workload}_base.log | sed 's/[^0-9]*//g') 10 | cd metis/metis-5.1.0; 11 | how_many_clusters=$((${line} / 128)) 12 | start_time=$(date +%s.%3N) 13 | for hbm_cap in "${hbm_caps[@]}" 14 | do 15 | ./run_group.sh ${workload} ${how_many_clusters} ${hbm_cap} & 16 | done 17 | end_time=$(date +%s.%3N) 18 | elapsed=$(echo "scale=3; $end_time - $start_time" | bc) 19 | echo "METIS partition time: $elapsed" 20 | wait 21 | cd -; 22 | } 23 | 24 | 25 | workloads=("steam" "anime" "movie" "dblp" "office" "twitch" "sports" "clothes" "M1" "M2" "M3" "M4") 26 | # workloads=("steam" "anime" "movie" "dblp" "office" "twitch") 27 | 28 | ## Metis clustering 29 | for workload in "${workloads[@]}" 30 | do 31 | prepare_metis ${workload} & 32 | done 33 | wait 34 | 35 | ## Metis inference 36 | for workload in "${workloads[@]}" 37 | do 38 | ./run_metis_hbm_only.sh ${workload} & 39 | done 40 | wait 41 | 42 | echo "Fig. 10 Metis finished" 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /Fig10_space.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | set -x 3 | 4 | 5 | set -Eeuo pipefail 6 | set -e 7 | set -x 8 | 9 | 10 | 11 | workloads=("steam" "anime" "movie" "dblp" "office" "twitch" "sports" "clothes" "M1" "M2" "M3" "M4") 12 | # workloads=("anime") 13 | 14 | # inference 15 | for workload in "${workloads[@]}" 16 | do 17 | ./run_space_hbm_only.sh ${workload} & 18 | done 19 | wait 20 | 21 | 22 | 23 | echo "Fig. 10 SPACE finished" 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | (c) The Regents of the University of Michigan https://cadre.eecs.umich.edu 2 | Authors: Haojie Ye, Sanketh Vedula, Yuhan Chen, Yichen Yang, Alex Bronstein, Ronald Dreslinski, Trevor Mudge, and Nishil Talati 3 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 4 | 5 | Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 6 | Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 7 | Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 8 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /count_lines_in_dataset.sh: -------------------------------------------------------------------------------- 1 | # set -x 2 | 3 | count_lines(){ 4 | if [[ $workload == "anime" ]]; then 5 | post_data_path="./dataset/anime/rating_postprocess.csv" 6 | elif [[ $workload == "office" ]]; then 7 | post_data_path="./dataset/office/amazon_Office_Products_postprocess.csv" 8 | elif [[ $workload == "dblp" ]]; then 9 | post_data_path="./dataset/dblp/dblp_postprocess.csv" 10 | elif [[ $workload == "sports" ]]; then 11 | post_data_path="./dataset/sports/amazon_Sports_and_Outdoors_postprocess.csv" 12 | elif [[ $workload == "steam" ]]; then 13 | post_data_path="./dataset/steam/australian_users_items_postprocess.csv" 14 | elif [[ $workload == "movie" ]]; then 15 | post_data_path="./dataset/movie/rating_postprocess.csv" 16 | elif [[ $workload == "twitch" ]]; then 17 | post_data_path="./dataset/twitch/100k_a_postprocess.csv" 18 | elif [[ $workload == "clothes" ]]; then 19 | post_data_path="./dataset/clothes/amazon_Clothing_Shoes_and_Jewelry_postprocess.csv" 20 | else 21 | echo "invalid workload given in argv 1" 22 | exit 0 23 | fi 24 | wc -l ${post_data_path} 25 | } 26 | 27 | 28 | workloads=("anime" "steam" "movie" "clothes" "twitch" "sports" "office" "dblp") 29 | 30 | for workload in "${workloads[@]}" 31 | do 32 | echo "Count: ${workload}" 33 | count_lines ${workload} 34 | done -------------------------------------------------------------------------------- /dataset/dataset_preprocess.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import sys 3 | import re 4 | import numpy 5 | import os 6 | import math 7 | import glob 8 | from collections import defaultdict 9 | import matplotlib 10 | import matplotlib.pyplot as plt 11 | import tqdm 12 | 13 | parser = argparse.ArgumentParser() 14 | parser.add_argument('-i', required=True) 15 | args = parser.parse_args() 16 | 17 | tmp = (args.i).split(".") 18 | output_filename = tmp[0] + "_preprocess.csv" 19 | out_file = open(output_filename, "w") 20 | 21 | dict = defaultdict(lambda: 0, {}) 22 | obj_idx = 0 23 | obj_mapping = {} 24 | usr_idx = 0 25 | usr_mapping = {} 26 | 27 | with open(args.i) as fp: 28 | print("Reading from file", args.i) 29 | for ln in fp: 30 | # if (ln.split(',')[0]).isnumeric() == False: 31 | # continue 32 | user = ln.split(',')[0] 33 | if user not in usr_mapping: 34 | usr_mapping[user] = usr_idx 35 | usr_idx += 1 36 | user = usr_mapping[user] 37 | 38 | # if user >= 16384 * 1024: 39 | # continue 40 | 41 | obj = ln.split(',')[1] 42 | if obj not in obj_mapping: 43 | obj_mapping[obj] = obj_idx 44 | obj_idx += 1 45 | obj = obj_mapping[obj] 46 | 47 | out_file.write(str(user) + ',' + str(obj) + '\n') 48 | -------------------------------------------------------------------------------- /dataset/dblp_preprocess.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import sys 3 | import re 4 | import numpy 5 | import os 6 | import math 7 | import glob 8 | from collections import defaultdict 9 | import matplotlib 10 | import matplotlib.pyplot as plt 11 | import tqdm 12 | 13 | parser = argparse.ArgumentParser() 14 | parser.add_argument('-i', required=True) 15 | args = parser.parse_args() 16 | 17 | tmp = (args.i).split(".") 18 | output_filename = tmp[0] + "_preprocess.csv" 19 | out_file = open(output_filename, "w") 20 | 21 | dict = defaultdict(lambda: 0, {}) 22 | obj_idx = 0 23 | obj_mapping = {} 24 | usr_idx = 0 25 | usr_mapping = {} 26 | 27 | with open(args.i) as fp: 28 | print("Reading from file", args.i) 29 | for ln in fp: 30 | # if (ln.split(',')[0]).isnumeric() == False: 31 | # continue 32 | user = ln.split(' ')[0] 33 | if user not in usr_mapping: 34 | usr_mapping[user] = usr_idx 35 | usr_idx += 1 36 | user = usr_mapping[user] 37 | 38 | obj = ln.split(' ')[1] 39 | if obj not in obj_mapping: 40 | obj_mapping[obj] = obj_idx 41 | obj_idx += 1 42 | obj = obj_mapping[obj] 43 | 44 | out_file.write(str(user) + ',' + str(obj) + '\n') 45 | 46 | user = ln.split(' ')[1] 47 | if user not in usr_mapping: 48 | usr_mapping[user] = usr_idx 49 | usr_idx += 1 50 | user = usr_mapping[user] 51 | 52 | obj = ln.split(' ')[0] 53 | if obj not in obj_mapping: 54 | obj_mapping[obj] = obj_idx 55 | obj_idx += 1 56 | obj = obj_mapping[obj] 57 | 58 | out_file.write(str(user) + ',' + str(obj) + '\n') -------------------------------------------------------------------------------- /dataset/steam_preprocess.py: -------------------------------------------------------------------------------- 1 | import json 2 | import argparse 3 | import sys 4 | import re 5 | import numpy 6 | import os 7 | import math 8 | import glob 9 | from collections import defaultdict 10 | import matplotlib 11 | import matplotlib.pyplot as plt 12 | import tqdm 13 | import re 14 | 15 | parser = argparse.ArgumentParser() 16 | parser.add_argument('-i', required=True) 17 | args = parser.parse_args() 18 | 19 | tmp = (args.i).split(".") 20 | output_filename = tmp[0] + "_preprocess.csv" 21 | out_file = open(output_filename, "w") 22 | 23 | obj_idx = 0 24 | obj_mapping = {} 25 | usr_idx = 0 26 | usr_mapping = {} 27 | 28 | with open(args.i) as fp: 29 | print("Reading from file", args.i) 30 | for ln in fp: 31 | user = None 32 | for seg in range(0, len(ln.split(':'))): 33 | if "steam_id" in ln.split(':')[seg]: 34 | user = ln.split(':')[seg + 1].split(',')[0] 35 | # out_file.write(user) 36 | if user not in usr_mapping: 37 | usr_mapping[user] = usr_idx 38 | usr_idx += 1 39 | user = usr_mapping[user] 40 | 41 | if "item_id" in ln.split(':')[seg]: 42 | obj = ln.split(':')[seg + 1].split(',')[0] 43 | # out_file.write(obj) 44 | if obj not in obj_mapping: 45 | obj_mapping[obj] = obj_idx 46 | obj_idx += 1 47 | obj = obj_mapping[obj] 48 | assert(user != None) 49 | out_file.write(str(user) + ',' + str(obj) + '\n') 50 | 51 | # if len(usr_mapping) >= 3: 52 | # break 53 | 54 | # s = ln.split("categories",1)[1] 55 | # if s.find("[") >= 0: 56 | # user = (re.sub("[^0-9]", "", ln.split("gPlusUserId",1)[1])) 57 | # if user not in usr_mapping: 58 | # usr_mapping[user] = usr_idx 59 | # usr_idx += 1 60 | # user = usr_mapping[user] 61 | 62 | # start = s.find("[") + len("[") 63 | # end = s.find("]") 64 | # substring = s[start:end] 65 | # locations = substring.split(",") 66 | 67 | # # print(ln.split("categories",1)[1]) 68 | # for obj in locations: 69 | # if obj not in obj_mapping: 70 | # obj_mapping[obj] = obj_idx 71 | # obj_idx += 1 72 | # obj = obj_mapping[obj] 73 | 74 | # out_file.write(str(user) + ',' + str(obj) + '\n') 75 | 76 | 77 | # review_data = None 78 | 79 | # f = open(args.i) 80 | 81 | # review_data = json.load(f) 82 | 83 | # print(len(review_data)) 84 | 85 | # # for row in my_data["rows"]: 86 | # # do_something(row["text"]) 87 | 88 | # f.close() 89 | -------------------------------------------------------------------------------- /files.count: -------------------------------------------------------------------------------- 1 | Count: anime 2 | 7803529 ./dataset/anime/rating_postprocess.csv 3 | Count: steam 4 | 5083277 ./dataset/steam/australian_users_items_postprocess.csv 5 | Count: movie 6 | 19964833 ./dataset/movie/rating_postprocess.csv 7 | Count: clothes 8 | 339066937 ./dataset/clothes/amazon_Clothing_Shoes_and_Jewelry_postprocess.csv 9 | Count: twitch 10 | 1833942 ./dataset/twitch/100k_a_postprocess.csv 11 | Count: sports 12 | 574468784 ./dataset/sports/amazon_Sports_and_Outdoors_postprocess.csv 13 | Count: office 14 | 239167201 ./dataset/office/amazon_Office_Products_postprocess.csv 15 | Count: dblp 16 | 29733930 ./dataset/dblp/dblp_postprocess.csv 17 | -------------------------------------------------------------------------------- /gapbs/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Ways to Contribute 2 | ================= 3 | 4 | We appreciate contributions from the community! Some of the ways to contribute are: 5 | + Bug fixes, whether they be for performance or correctness 6 | + Support for additional input formats 7 | + Additional kernel implementations 8 | 9 | Although the GAP Benchmark Suite only specifies 6 graph kernels, we are open to adding more non-benchmark kernels to this repo. It is our goal to provide a set of portable high-performance baselines, so naturally there are plenty of remaining graph problems (e.g. MST, SCC, ALS, etc...). 10 | 11 | For code contributions, please focus on code simplicity and readability. This repo follows nearly all of the [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html). If you open a pull request, our continuous-integration service run by Travis will do an immediate sanity-check. 12 | 13 | Before embarking on a large development task, feel to open an issue or email (sbeamer@lbl.gov) to ensure you are on a profitable path. 14 | -------------------------------------------------------------------------------- /gapbs/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, The Regents of the University of California (Regents). 2 | All Rights Reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 1. Redistributions of source code must retain the above copyright 7 | notice, this list of conditions and the following disclaimer. 8 | 2. Redistributions in binary form must reproduce the above copyright 9 | notice, this list of conditions and the following disclaimer in the 10 | documentation and/or other materials provided with the distribution. 11 | 3. Neither the name of the Regents nor the 12 | names of its contributors may be used to endorse or promote products 13 | derived from this software without specific prior written permission. 14 | 15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 16 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 | DISCLAIMED. IN NO EVENT SHALL REGENTS BE LIABLE FOR ANY 19 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /gapbs/Makefile: -------------------------------------------------------------------------------- 1 | # See LICENSE.txt for license details. 2 | CXX_FLAGS += -std=c++11 -O3 -Wall # -DHBM_CAP_RATIO=1.0 3 | PAR_FLAG = -fopenmp 4 | 5 | ifneq (,$(findstring icpc,$(CXX))) 6 | PAR_FLAG = -openmp 7 | endif 8 | 9 | ifneq (,$(findstring sunCC,$(CXX))) 10 | CXX_FLAGS = -std=c++11 -xO3 -m64 -xtarget=native 11 | PAR_FLAG = -xopenmp 12 | endif 13 | 14 | ifneq ($(SERIAL), 1) 15 | CXX_FLAGS += $(PAR_FLAG) 16 | endif 17 | 18 | KERNELS = analyze # bc bfs cc cc_sv pr pr_spmv sssp tc 19 | SUITE = $(KERNELS) converter 20 | 21 | .PHONY: all 22 | all: $(SUITE) 23 | 24 | % : src/%.cc src/*.h 25 | $(CXX) $(CXX_FLAGS) $< -o $@ 26 | 27 | # Testing 28 | include test/test.mk 29 | 30 | # Benchmark Automation 31 | include benchmark/bench.mk 32 | 33 | 34 | .PHONY: clean 35 | clean: 36 | rm -f $(SUITE) test/out/* 37 | -------------------------------------------------------------------------------- /gapbs/converter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/gapbs/converter -------------------------------------------------------------------------------- /gapbs/run.sh: -------------------------------------------------------------------------------- 1 | set -Eeuo pipefail 2 | set -e 3 | set -x 4 | 5 | mkdir -p cluster 6 | mkdir -p bin 7 | 8 | workload=$1 9 | decay=$2 10 | length=$3 11 | ps=(50) 12 | 13 | cp ./analyze ./bin/analyze_${workload} 14 | ./bin/analyze_${workload} -sf ../graph/${workload}_50_percent_sampling_graph.wel ${workload} ${decay} ${length} 15 | 16 | 17 | wait 18 | 19 | 20 | echo "gapbs $1 complete" 21 | 22 | -------------------------------------------------------------------------------- /gapbs/src/bitmap.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015, The Regents of the University of California (Regents) 2 | // See LICENSE.txt for license details 3 | 4 | #ifndef BITMAP_H_ 5 | #define BITMAP_H_ 6 | 7 | #include 8 | #include 9 | 10 | #include "platform_atomics.h" 11 | 12 | 13 | /* 14 | GAP Benchmark Suite 15 | Class: Bitmap 16 | Author: Scott Beamer 17 | 18 | Parallel bitmap that is thread-safe 19 | - Can set bits in parallel (set_bit_atomic) unlike std::vector 20 | */ 21 | 22 | 23 | class Bitmap { 24 | public: 25 | explicit Bitmap(size_t size) { 26 | uint64_t num_words = (size + kBitsPerWord - 1) / kBitsPerWord; 27 | start_ = new uint64_t[num_words]; 28 | end_ = start_ + num_words; 29 | } 30 | 31 | ~Bitmap() { 32 | delete[] start_; 33 | } 34 | 35 | void reset() { 36 | std::fill(start_, end_, 0); 37 | } 38 | 39 | void set_bit(size_t pos) { 40 | start_[word_offset(pos)] |= ((uint64_t) 1l << bit_offset(pos)); 41 | } 42 | 43 | void set_bit_atomic(size_t pos) { 44 | uint64_t old_val, new_val; 45 | do { 46 | old_val = start_[word_offset(pos)]; 47 | new_val = old_val | ((uint64_t) 1l << bit_offset(pos)); 48 | } while (!compare_and_swap(start_[word_offset(pos)], old_val, new_val)); 49 | } 50 | 51 | bool get_bit(size_t pos) const { 52 | return (start_[word_offset(pos)] >> bit_offset(pos)) & 1l; 53 | } 54 | 55 | void swap(Bitmap &other) { 56 | std::swap(start_, other.start_); 57 | std::swap(end_, other.end_); 58 | } 59 | 60 | private: 61 | uint64_t *start_; 62 | uint64_t *end_; 63 | 64 | static const uint64_t kBitsPerWord = 64; 65 | static uint64_t word_offset(size_t n) { return n / kBitsPerWord; } 66 | static uint64_t bit_offset(size_t n) { return n & (kBitsPerWord - 1); } 67 | }; 68 | 69 | #endif // BITMAP_H_ 70 | -------------------------------------------------------------------------------- /gapbs/src/converter.cc: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015, The Regents of the University of California (Regents) 2 | // See LICENSE.txt for license details 3 | 4 | #include 5 | 6 | #include "benchmark.h" 7 | #include "builder.h" 8 | #include "command_line.h" 9 | #include "graph.h" 10 | #include "reader.h" 11 | #include "writer.h" 12 | 13 | using namespace std; 14 | 15 | int main(int argc, char* argv[]) { 16 | CLConvert cli(argc, argv, "converter"); 17 | cli.ParseArgs(); 18 | if (cli.out_weighted()) { 19 | WeightedBuilder bw(cli); 20 | WGraph wg = bw.MakeGraph(); 21 | wg.PrintStats(); 22 | WeightedWriter ww(wg); 23 | ww.WriteGraph(cli.out_filename(), cli.out_sg()); 24 | } else { 25 | Builder b(cli); 26 | Graph g = b.MakeGraph(); 27 | g.PrintStats(); 28 | Writer w(g); 29 | w.WriteGraph(cli.out_filename(), cli.out_sg()); 30 | } 31 | return 0; 32 | } 33 | -------------------------------------------------------------------------------- /gapbs/src/gpm_triangles: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/gapbs/src/gpm_triangles -------------------------------------------------------------------------------- /gapbs/src/gpm_triangles.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include "benchmark.h" 5 | #include "bitmap.h" 6 | #include "builder.h" 7 | #include "command_line.h" 8 | #include "graph.h" 9 | #include "platform_atomics.h" 10 | #include "pvector.h" 11 | #include "timer.h" 12 | 13 | #include 14 | #define NUM_THREADS 64 15 | 16 | unsigned long long FindNumTriangles(const Graph &g) { 17 | 18 | unsigned long long num_triangles = 0; 19 | 20 | Timer t_tri; 21 | t_tri.Start(); 22 | 23 | // #pragma omp parallel for reduction(+ : num_triangles) schedule(dynamic, NUM_THREADS) 24 | for(NodeID u0=0; u0= u0) { 27 | break; 28 | } 29 | std::vector u0_u1_neigh_intersection = g.FindCommonNeighborIDsNoConstraints(u0, u1); 30 | for(NodeID u2 : u0_u1_neigh_intersection) { 31 | if(u2 >= u1) { 32 | break; 33 | } 34 | num_triangles++; 35 | } 36 | } 37 | } 38 | 39 | t_tri.Stop(); 40 | PrintStep("Triangle computation time (s):", t_tri.Seconds()); 41 | 42 | return num_triangles; 43 | 44 | } 45 | 46 | int main(int argc, char* argv[]) { 47 | 48 | omp_set_num_threads(NUM_THREADS); 49 | 50 | CLApp cli(argc, argv, "gpm-triangle"); 51 | 52 | if (!cli.ParseArgs()) 53 | return -1; 54 | 55 | Builder b(cli); 56 | Graph g = b.MakeGraph(); 57 | g.PrintStats(); 58 | 59 | unsigned long long num_triangles = 0; 60 | num_triangles = FindNumTriangles(g); 61 | 62 | 63 | std::cout << "Number of triangles: " << num_triangles << std::endl; 64 | 65 | return 0; 66 | } -------------------------------------------------------------------------------- /gapbs/src/sliding_queue.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015, The Regents of the University of California (Regents) 2 | // See LICENSE.txt for license details 3 | 4 | #ifndef SLIDING_QUEUE_H_ 5 | #define SLIDING_QUEUE_H_ 6 | 7 | #include 8 | 9 | #include "platform_atomics.h" 10 | 11 | 12 | /* 13 | GAP Benchmark Suite 14 | Class: SlidingQueue 15 | Author: Scott Beamer 16 | 17 | Double-buffered queue so appends aren't seen until SlideWindow() called 18 | - Use QueueBuffer when used in parallel to avoid false sharing by doing 19 | bulk appends from thread-local storage 20 | */ 21 | 22 | 23 | template 24 | class QueueBuffer; 25 | 26 | template 27 | class SlidingQueue { 28 | T *shared; 29 | size_t shared_in; 30 | size_t shared_out_start; 31 | size_t shared_out_end; 32 | friend class QueueBuffer; 33 | 34 | public: 35 | explicit SlidingQueue(size_t shared_size) { 36 | shared = new T[shared_size]; 37 | reset(); 38 | } 39 | 40 | ~SlidingQueue() { 41 | delete[] shared; 42 | } 43 | 44 | void push_back(T to_add) { 45 | shared[shared_in++] = to_add; 46 | } 47 | 48 | bool empty() const { 49 | return shared_out_start == shared_out_end; 50 | } 51 | 52 | void reset() { 53 | shared_out_start = 0; 54 | shared_out_end = 0; 55 | shared_in = 0; 56 | } 57 | 58 | void slide_window() { 59 | shared_out_start = shared_out_end; 60 | shared_out_end = shared_in; 61 | } 62 | 63 | typedef T* iterator; 64 | 65 | iterator begin() const { 66 | return shared + shared_out_start; 67 | } 68 | 69 | iterator end() const { 70 | return shared + shared_out_end; 71 | } 72 | 73 | size_t size() const { 74 | return end() - begin(); 75 | } 76 | }; 77 | 78 | 79 | template 80 | class QueueBuffer { 81 | size_t in; 82 | T *local_queue; 83 | SlidingQueue &sq; 84 | const size_t local_size; 85 | 86 | public: 87 | explicit QueueBuffer(SlidingQueue &master, size_t given_size = 16384) 88 | : sq(master), local_size(given_size) { 89 | in = 0; 90 | local_queue = new T[local_size]; 91 | } 92 | 93 | ~QueueBuffer() { 94 | delete[] local_queue; 95 | } 96 | 97 | void push_back(T to_add) { 98 | if (in == local_size) 99 | flush(); 100 | local_queue[in++] = to_add; 101 | } 102 | 103 | void flush() { 104 | T *shared_queue = sq.shared; 105 | size_t copy_start = fetch_and_add(sq.shared_in, in); 106 | std::copy(local_queue, local_queue+in, shared_queue+copy_start); 107 | in = 0; 108 | } 109 | }; 110 | 111 | #endif // SLIDING_QUEUE_H_ 112 | -------------------------------------------------------------------------------- /gapbs/src/timer.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015, The Regents of the University of California (Regents) 2 | // See LICENSE.txt for license details 3 | 4 | #ifndef TIMER_H_ 5 | #define TIMER_H_ 6 | 7 | #include 8 | 9 | 10 | /* 11 | GAP Benchmark Suite 12 | Class: Timer 13 | Authors: Scott Beamer, Michael Sutton 14 | 15 | Simple timer that wraps std::chrono 16 | */ 17 | 18 | class Timer { 19 | public: 20 | Timer() {} 21 | 22 | void Start() { 23 | elapsed_time_ = start_time_ = std::chrono::high_resolution_clock::now(); 24 | } 25 | 26 | void Stop() { 27 | elapsed_time_ = std::chrono::high_resolution_clock::now(); 28 | } 29 | 30 | double Seconds() const { 31 | return std::chrono::duration_cast>(elapsed_time_ - start_time_).count(); 32 | } 33 | 34 | double Millisecs() const { 35 | return std::chrono::duration_cast>(elapsed_time_ - start_time_).count(); 36 | } 37 | 38 | double Microsecs() const { 39 | return std::chrono::duration_cast>(elapsed_time_ - start_time_).count(); 40 | } 41 | 42 | private: 43 | std::chrono::high_resolution_clock::time_point start_time_, elapsed_time_; 44 | }; 45 | 46 | // Times op's execution using the timer t 47 | #define TIME_OP(t, op) { t.Start(); (op); t.Stop(); } 48 | 49 | #endif // TIMER_H_ 50 | -------------------------------------------------------------------------------- /gapbs/src/util.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015, The Regents of the University of California (Regents) 2 | // See LICENSE.txt for license details 3 | 4 | #ifndef UTIL_H_ 5 | #define UTIL_H_ 6 | 7 | #include 8 | #include 9 | #include 10 | 11 | #include "timer.h" 12 | 13 | 14 | /* 15 | GAP Benchmark Suite 16 | Author: Scott Beamer 17 | 18 | Miscellaneous helpers that don't fit into classes 19 | */ 20 | 21 | 22 | static const int64_t kRandSeed = 27491095; 23 | 24 | 25 | void PrintLabel(const std::string &label, const std::string &val) { 26 | printf("%-21s%7s\n", (label + ":").c_str(), val.c_str()); 27 | } 28 | 29 | void PrintTime(const std::string &s, double seconds) { 30 | printf("%-21s%3.5lf\n", (s + ":").c_str(), seconds); 31 | } 32 | 33 | void PrintStep(const std::string &s, int64_t count) { 34 | printf("%-14s%14" PRId64 "\n", (s + ":").c_str(), count); 35 | } 36 | 37 | void PrintStep(int step, double seconds, int64_t count = -1) { 38 | if (count != -1) 39 | printf("%5d%11" PRId64 " %10.5lf\n", step, count, seconds); 40 | else 41 | printf("%5d%23.5lf\n", step, seconds); 42 | } 43 | 44 | void PrintStep(const std::string &s, double seconds, int64_t count = -1) { 45 | if (count != -1) 46 | printf("%5s%11" PRId64 " %10.5lf\n", s.c_str(), count, seconds); 47 | else 48 | printf("%5s%23.5lf\n", s.c_str(), seconds); 49 | } 50 | 51 | // Runs op and prints the time it took to execute labelled by label 52 | #define TIME_PRINT(label, op) { \ 53 | Timer t_; \ 54 | t_.Start(); \ 55 | (op); \ 56 | t_.Stop(); \ 57 | PrintTime(label, t_.Seconds()); \ 58 | } 59 | 60 | 61 | template 62 | class RangeIter { 63 | T_ x_; 64 | public: 65 | explicit RangeIter(T_ x) : x_(x) {} 66 | bool operator!=(RangeIter const& other) const { return x_ != other.x_; } 67 | T_ const& operator*() const { return x_; } 68 | RangeIter& operator++() { 69 | ++x_; 70 | return *this; 71 | } 72 | }; 73 | 74 | template 75 | class Range{ 76 | T_ from_; 77 | T_ to_; 78 | public: 79 | explicit Range(T_ to) : from_(0), to_(to) {} 80 | Range(T_ from, T_ to) : from_(from), to_(to) {} 81 | RangeIter begin() const { return RangeIter(from_); } 82 | RangeIter end() const { return RangeIter(to_); } 83 | }; 84 | 85 | #endif // UTIL_H_ 86 | -------------------------------------------------------------------------------- /gapbs/test/graphs/4.el: -------------------------------------------------------------------------------- 1 | 0 13 2 | 0 13 3 | 0 9 4 | 0 0 5 | 0 8 6 | 0 0 7 | 0 12 8 | 9 9 9 | 2 1 10 | 0 3 11 | 0 0 12 | 0 8 13 | 0 7 14 | 13 9 15 | 0 8 16 | 7 12 17 | 9 4 18 | 0 0 19 | 7 3 20 | 0 2 21 | 0 13 22 | 8 4 23 | 8 7 24 | 0 10 25 | 8 7 26 | 0 13 27 | 13 9 28 | 7 12 29 | 13 11 30 | 8 13 31 | 2 4 32 | 0 9 33 | 0 4 34 | 0 12 35 | 13 13 36 | 0 13 37 | 0 8 38 | 3 9 39 | 0 12 40 | 7 4 41 | 9 11 42 | 0 8 43 | 7 13 44 | 0 9 45 | 0 0 46 | 0 2 47 | 7 1 48 | 0 7 49 | 2 9 50 | 10 1 51 | 0 0 52 | 0 1 53 | 8 7 54 | 0 7 55 | 7 2 56 | 0 0 57 | 0 1 58 | 0 11 59 | 8 9 60 | 8 12 61 | 7 9 62 | 0 7 63 | 0 3 64 | 7 13 65 | 8 7 66 | 7 1 67 | 0 0 68 | 0 0 69 | 0 4 70 | 0 8 71 | 7 1 72 | 0 0 73 | 8 7 74 | 7 4 75 | 0 4 76 | 9 4 77 | 0 11 78 | 0 9 79 | 7 1 80 | 8 9 81 | 0 4 82 | 0 4 83 | 3 13 84 | 0 9 85 | 0 3 86 | 0 0 87 | 0 8 88 | 8 13 89 | 0 0 90 | 0 3 91 | 0 9 92 | 0 11 93 | 0 0 94 | 7 2 95 | 0 7 96 | 0 4 97 | 0 7 98 | 0 8 99 | 13 13 100 | 0 13 101 | 0 0 102 | 0 10 103 | 8 7 104 | 13 9 105 | 0 13 106 | 0 12 107 | 0 1 108 | 0 10 109 | 3 13 110 | 0 7 111 | 8 8 112 | 8 3 113 | 0 8 114 | 0 7 115 | 7 9 116 | 0 8 117 | 2 1 118 | 0 0 119 | 9 10 120 | 0 12 121 | 0 13 122 | 0 7 123 | 8 2 124 | 13 13 125 | 0 9 126 | 8 7 127 | 0 6 128 | 0 8 129 | 0 4 130 | 7 7 131 | 0 4 132 | 8 7 133 | 0 2 134 | 7 10 135 | 0 13 136 | 0 13 137 | 0 2 138 | 8 11 139 | 0 12 140 | 0 4 141 | 8 8 142 | 0 8 143 | 0 7 144 | 0 0 145 | 0 7 146 | 9 6 147 | 3 13 148 | 0 7 149 | 0 13 150 | 0 0 151 | 8 1 152 | 0 12 153 | 3 2 154 | 4 6 155 | 0 0 156 | 12 1 157 | 0 13 158 | 13 13 159 | 0 0 160 | 13 9 161 | 8 9 162 | 8 13 163 | 8 13 164 | 0 0 165 | 8 7 166 | 7 13 167 | 0 0 168 | 8 7 169 | 8 13 170 | 0 0 171 | 13 9 172 | 0 3 173 | 0 11 174 | 0 7 175 | 8 13 176 | 0 8 177 | 0 9 178 | 3 9 179 | 0 9 180 | 0 0 181 | 13 4 182 | 0 7 183 | 0 8 184 | 0 8 185 | 8 12 186 | 13 4 187 | 0 8 188 | 3 4 189 | 8 3 190 | 0 0 191 | 13 4 192 | 0 13 193 | 0 13 194 | 0 7 195 | 0 13 196 | 9 10 197 | 2 6 198 | 0 2 199 | 0 7 200 | 0 2 201 | 7 11 202 | 0 3 203 | 0 9 204 | 8 13 205 | 0 8 206 | 13 2 207 | 3 12 208 | 8 3 209 | 0 13 210 | 0 7 211 | 0 7 212 | 0 4 213 | 8 13 214 | 8 9 215 | 0 13 216 | 0 7 217 | 7 9 218 | 0 13 219 | 0 2 220 | 8 13 221 | 0 4 222 | 13 9 223 | 0 7 224 | 0 9 225 | 0 8 226 | 2 10 227 | 0 12 228 | 0 2 229 | 13 4 230 | 0 8 231 | 0 13 232 | 0 0 233 | 9 9 234 | 0 4 235 | 0 13 236 | 7 11 237 | 9 1 238 | 0 7 239 | 0 1 240 | 0 6 241 | 0 8 242 | 0 9 243 | 7 13 244 | 7 13 245 | 8 2 246 | 0 0 247 | 0 8 248 | 8 7 249 | 8 9 250 | 0 3 251 | 0 9 252 | 13 10 253 | 0 10 254 | 0 0 255 | 0 3 256 | 0 9 257 | -------------------------------------------------------------------------------- /gapbs/test/graphs/4.graph: -------------------------------------------------------------------------------- 1 | 14 53 100 2 | 2 3 4 5 7 8 9 10 11 12 13 14 3 | 4 | 2 5 7 10 11 5 | 3 5 10 13 14 6 | 7 7 | 8 | 9 | 2 3 4 5 10 11 12 13 14 10 | 2 3 4 5 8 10 12 13 14 11 | 2 5 7 11 12 12 | 2 13 | 14 | 2 15 | 3 5 10 11 12 16 | -------------------------------------------------------------------------------- /gapbs/test/graphs/4.mtx: -------------------------------------------------------------------------------- 1 | %%MatrixMarket matrix coordinate pattern general 2 | 14 14 256 3 | 1 5 4 | 1 13 5 | 1 14 6 | 1 9 7 | 1 13 8 | 1 9 9 | 1 10 10 | 1 1 11 | 1 3 12 | 1 8 13 | 1 1 14 | 1 2 15 | 1 8 16 | 1 1 17 | 1 2 18 | 1 12 19 | 1 8 20 | 1 4 21 | 1 14 22 | 1 8 23 | 1 14 24 | 1 3 25 | 1 8 26 | 1 3 27 | 1 4 28 | 1 10 29 | 1 9 30 | 1 14 31 | 1 8 32 | 1 8 33 | 1 5 34 | 1 14 35 | 1 8 36 | 1 14 37 | 1 3 38 | 1 5 39 | 1 8 40 | 1 10 41 | 1 1 42 | 1 1 43 | 1 5 44 | 1 9 45 | 1 1 46 | 1 5 47 | 1 12 48 | 1 10 49 | 1 5 50 | 1 5 51 | 1 10 52 | 1 4 53 | 1 1 54 | 1 9 55 | 1 1 56 | 1 4 57 | 1 10 58 | 1 12 59 | 1 1 60 | 1 8 61 | 1 5 62 | 1 1 63 | 1 1 64 | 1 1 65 | 1 4 66 | 1 12 67 | 1 8 68 | 1 9 69 | 1 10 70 | 1 10 71 | 1 1 72 | 1 8 73 | 1 9 74 | 1 9 75 | 1 9 76 | 1 1 77 | 1 14 78 | 1 8 79 | 1 9 80 | 1 14 81 | 1 1 82 | 1 11 83 | 1 14 84 | 1 13 85 | 1 2 86 | 1 11 87 | 1 8 88 | 1 9 89 | 1 8 90 | 1 9 91 | 1 1 92 | 1 13 93 | 1 14 94 | 1 8 95 | 1 10 96 | 1 7 97 | 1 9 98 | 1 9 99 | 1 13 100 | 1 3 101 | 1 9 102 | 1 14 103 | 1 1 104 | 1 5 105 | 1 14 106 | 1 8 107 | 1 2 108 | 1 7 109 | 1 9 110 | 1 10 111 | 1 1 112 | 1 9 113 | 1 4 114 | 1 10 115 | 1 11 116 | 1 1 117 | 1 4 118 | 1 10 119 | 1 5 120 | 1 5 121 | 1 3 122 | 1 14 123 | 1 14 124 | 1 3 125 | 1 13 126 | 1 5 127 | 1 9 128 | 1 8 129 | 1 1 130 | 1 8 131 | 1 8 132 | 1 14 133 | 1 1 134 | 1 13 135 | 1 1 136 | 1 14 137 | 1 1 138 | 1 14 139 | 1 14 140 | 1 10 141 | 1 1 142 | 1 9 143 | 1 1 144 | 1 13 145 | 1 4 146 | 1 1 147 | 1 9 148 | 1 8 149 | 1 9 150 | 1 1 151 | 1 3 152 | 1 14 153 | 1 11 154 | 1 14 155 | 1 10 156 | 3 10 157 | 3 7 158 | 3 2 159 | 3 11 160 | 3 2 161 | 3 5 162 | 4 10 163 | 4 13 164 | 4 14 165 | 4 10 166 | 4 5 167 | 4 14 168 | 4 14 169 | 4 3 170 | 5 7 171 | 8 5 172 | 8 14 173 | 8 2 174 | 8 3 175 | 8 10 176 | 8 14 177 | 8 12 178 | 8 10 179 | 8 2 180 | 8 2 181 | 8 5 182 | 8 2 183 | 8 3 184 | 8 14 185 | 8 10 186 | 8 12 187 | 8 14 188 | 8 14 189 | 8 8 190 | 8 11 191 | 8 13 192 | 8 4 193 | 8 13 194 | 9 8 195 | 9 10 196 | 9 13 197 | 9 14 198 | 9 4 199 | 9 14 200 | 9 10 201 | 9 14 202 | 9 8 203 | 9 8 204 | 9 10 205 | 9 14 206 | 9 10 207 | 9 14 208 | 9 14 209 | 9 8 210 | 9 8 211 | 9 14 212 | 9 14 213 | 9 13 214 | 9 4 215 | 9 8 216 | 9 9 217 | 9 4 218 | 9 3 219 | 9 8 220 | 9 3 221 | 9 8 222 | 9 10 223 | 9 8 224 | 9 12 225 | 9 9 226 | 9 2 227 | 9 5 228 | 9 8 229 | 9 8 230 | 9 14 231 | 10 12 232 | 10 11 233 | 10 5 234 | 10 11 235 | 10 10 236 | 10 2 237 | 10 7 238 | 10 10 239 | 10 5 240 | 11 2 241 | 13 2 242 | 14 14 243 | 14 3 244 | 14 10 245 | 14 10 246 | 14 5 247 | 14 5 248 | 14 5 249 | 14 14 250 | 14 10 251 | 14 14 252 | 14 5 253 | 14 11 254 | 14 14 255 | 14 10 256 | 14 10 257 | 14 10 258 | 14 12 259 | -------------------------------------------------------------------------------- /gapbs/test/graphs/4w.graph: -------------------------------------------------------------------------------- 1 | 14 53 1 2 | 2 19 3 5 4 1 5 8 7 67 8 18 9 11 10 3 11 93 12 2 13 38 14 6 3 | 4 | 2 40 5 167 7 199 10 22 11 47 5 | 3 250 5 183 10 204 13 130 14 121 6 | 7 176 7 | 8 | 9 | 2 39 3 13 4 251 5 155 10 101 11 58 12 72 13 15 14 75 10 | 2 45 3 29 4 23 5 245 8 25 10 112 12 205 13 26 14 23 11 | 2 115 5 19 7 53 11 141 12 139 12 | 2 181 13 | 14 | 2 213 15 | 3 243 5 29 10 59 11 212 12 200 16 | -------------------------------------------------------------------------------- /gapbs/test/reference/graph-4.el.out: -------------------------------------------------------------------------------- 1 | Graph has 14 nodes and 53 directed edges for degree: 3 2 | -------------------------------------------------------------------------------- /gapbs/test/reference/graph-4.gr.out: -------------------------------------------------------------------------------- 1 | Graph has 14 nodes and 53 directed edges for degree: 3 2 | -------------------------------------------------------------------------------- /gapbs/test/reference/graph-4.graph.out: -------------------------------------------------------------------------------- 1 | Graph has 14 nodes and 53 directed edges for degree: 3 2 | -------------------------------------------------------------------------------- /gapbs/test/reference/graph-4.mtx.out: -------------------------------------------------------------------------------- 1 | Graph has 14 nodes and 53 directed edges for degree: 3 2 | -------------------------------------------------------------------------------- /gapbs/test/reference/graph-4.wel.out: -------------------------------------------------------------------------------- 1 | Graph has 14 nodes and 53 directed edges for degree: 3 2 | -------------------------------------------------------------------------------- /gapbs/test/reference/graph-4w.graph.out: -------------------------------------------------------------------------------- 1 | Graph has 14 nodes and 53 directed edges for degree: 3 2 | -------------------------------------------------------------------------------- /gapbs/test/reference/graph-4w.mtx.out: -------------------------------------------------------------------------------- 1 | Graph has 14 nodes and 53 directed edges for degree: 3 2 | -------------------------------------------------------------------------------- /gapbs/test/reference/graph-g10.out: -------------------------------------------------------------------------------- 1 | Graph has 1024 nodes and 10496 undirected edges for degree: 10 2 | -------------------------------------------------------------------------------- /gapbs/test/reference/graph-u10.out: -------------------------------------------------------------------------------- 1 | Graph has 1024 nodes and 16104 undirected edges for degree: 15 2 | -------------------------------------------------------------------------------- /gapbs/test/test.mk: -------------------------------------------------------------------------------- 1 | # Makefile-based Testing Infrastructure 2 | # Scott Beamer, 2015 3 | 4 | 5 | 6 | # Shared Components ----------------------------------------------------# 7 | #-----------------------------------------------------------------------# 8 | 9 | # Dependencies are the tests it will run 10 | test-all: test-build test-generate test-load test-verify 11 | 12 | # Does everthing, intended target for users 13 | test: test-score 14 | @if $(MAKE) test-score | grep FAIL > /dev/null; \ 15 | then exit 1; \ 16 | fi 17 | 18 | # Sums up number of passes and fails 19 | test-score: test-all 20 | @$(MAKE) test-all | cut -d\ -f 2 | grep 'PASS\|FAIL' | sort | uniq -c 21 | 22 | # Result output strings 23 | PASS = \033[92mPASS\033[0m 24 | FAIL = \033[91mFAIL\033[0m 25 | 26 | test/out: 27 | mkdir -p test/out 28 | 29 | # Need to be able to build kernels, if this fails rest not run 30 | test-build: all 31 | @echo " $(PASS) Build" 32 | 33 | 34 | 35 | # Graph Generation/Building/Loading ------------------------------------# 36 | #-----------------------------------------------------------------------# 37 | 38 | # Since all implementations use same code for this, only test one kernel 39 | GENERATE_KERNEL = bfs 40 | 41 | # Built-in synthetic graph generators 42 | test-generate: test-generate-g10 test-generate-u10 43 | 44 | test/out/generate-%.out: test/out $(GENERATE_KERNEL) 45 | ./$(GENERATE_KERNEL) -$* -n0 > $@ 46 | 47 | .SECONDARY: # want to keep all intermediate files (test outputs) 48 | test-generate-%: test/out/generate-%.out 49 | @if grep -q "`cat test/reference/graph-$*.out`" $<; \ 50 | then echo " $(PASS) Generates $*"; \ 51 | else echo " $(FAIL) Generates $*"; \ 52 | fi 53 | 54 | # Loading graphs from files 55 | test-load: test-load-4.gr test-load-4.el test-load-4.wel test-load-4.graph \ 56 | test-load-4w.graph test-load-4.mtx test-load-4w.mtx 57 | 58 | test/out/load-%.out: test/out $(GENERATE_KERNEL) 59 | ./$(GENERATE_KERNEL) -f test/graphs/$* -n0 > $@ 60 | 61 | .SECONDARY: # want to keep all intermediate files (test outputs) 62 | test-load-%: test/out/load-%.out 63 | @if grep -q "`cat test/reference/graph-$*.out`" $<; \ 64 | then echo " $(PASS) Load $*"; \ 65 | else echo " $(FAIL) Load $*"; \ 66 | fi 67 | 68 | 69 | 70 | # Kernel Output Verification -------------------------------------------# 71 | #-----------------------------------------------------------------------# 72 | 73 | # Trivally small graph, will add benchmark graphs 74 | TEST_GRAPH ?= g10 75 | 76 | test/out/verify-%-$(TEST_GRAPH).out: test/out % 77 | ./$* -$(TEST_GRAPH) -vn1 > $@ 78 | 79 | .SECONDARY: 80 | test-verify-%-$(TEST_GRAPH): test/out/verify-%-$(TEST_GRAPH).out 81 | @if grep -q "Verification: PASS" $<; \ 82 | then echo " $(PASS) Verify $*"; \ 83 | else echo " $(FAIL) Verify $*"; \ 84 | fi 85 | 86 | test-verify: $(addsuffix -$(TEST_GRAPH), $(addprefix test-verify-, $(KERNELS))) 87 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/BUILD-Windows.txt: -------------------------------------------------------------------------------- 1 | Building METIS requires CMake 2.8, found at 2 | http://www.cmake.org/. CMake generates Visual Studio project files, 3 | which then can be built using Visual Studio. There are two ways to 4 | generate visual studio files: using the command line and using the 5 | CMake GUI. 6 | 7 | Using the command line 8 | ---------------------- 9 | 10 | Open the command prompt and cd to the METIS source directory. Run 11 | 12 | > cmake --help 13 | 14 | and look at the list of generators for the Visual Studio studio you 15 | want to build for. For example, the generator for Visual Studio 2010 16 | is called "Visual Studio 10". 17 | 18 | After you have found the appropriate generator, run 19 | 20 | > .\vsgen -G "" 21 | 22 | to generate the project files. The project files will be placed 23 | build\windows. 24 | 25 | 26 | Using the CMake GUI 27 | ------------------- 28 | 29 | It is also possible to use the CMake GUI, distributed with CMake. To 30 | do this, open the CMake GUI, and browse to the location of METIS' 31 | source with the "Browse Source" button. You can also change the binary 32 | directory. This is where the Visual Studio project files will be 33 | placed. Click "Generate" to select the correct visual studio version 34 | and build the project files. 35 | 36 | Using the VS project files 37 | -------------------------- 38 | 39 | The Visual Studio project will be called METIS.sln. Open it in Visual 40 | Studio. If the configuration is not already "Release", set it to 41 | "Release". Type F7 to build. The METIS library will be in 42 | \libmetis\Release and the executable programs will be in 43 | \programs\Release. ( will be build\windows if 44 | you used the command line or whatever you choose if using the CMake 45 | GUI.) 46 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/BUILD.txt: -------------------------------------------------------------------------------- 1 | ------------------------------------------------------------------------------ 2 | Building METIS requires CMake 2.8, found at http://www.cmake.org/, as 3 | well as GNU make. Assumming CMake and GNU make are installed, two 4 | commands should suffice to build metis: 5 | 6 | $ make config 7 | $ make 8 | 9 | 10 | Configuration 11 | ------------- 12 | METIS is primarily configured by passing options to make config. For 13 | example: 14 | 15 | $ make config shared=1 cc=gcc-4.2 16 | 17 | would configure metis to be built as a shared library using GCC 4.2. 18 | 19 | Common configuration options are: 20 | cc=[compiler] - The C compiler to use [default is determined by CMake] 21 | shared=1 - Build a shared library instead of a static one 22 | [off by default] 23 | prefix=[PATH] - Set the installation prefix [/usr/local/ by default] 24 | 25 | Advanced debugging related options: 26 | gdb=1 - Build with support for GDB [off by default] 27 | debug=1 - Enable debugging support [off by default] 28 | assert=1 - Enable asserts [off by default] 29 | assert2=1 - Enable very expensive asserts [off by default] 30 | 31 | METIS' index and real data type size can be configured by editing 32 | include/metis.h. 33 | 34 | 35 | Installation 36 | ------------ 37 | To install METIS, run 38 | 39 | $ make install 40 | 41 | The default installation prefix is /usr/local. To pick an installation 42 | prefix for METIS pass prefix=[path] to make config. For example, 43 | 44 | $ make config prefix=~/myroot/ 45 | 46 | will cause METIS to be installed in ~/myroot/ when make install is run. 47 | 48 | 49 | Other make commands 50 | ------------------- 51 | $ make uninstall 52 | Removes all files installed by 'make install'. 53 | 54 | $ make clean 55 | Removes all object files but retains the configuration options. 56 | 57 | $ make distclean 58 | Performs clean and completely removes the build directory. 59 | 60 | ------------------------------------------------------------------------------ 61 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8) 2 | project(METIS) 3 | 4 | set(GKLIB_PATH "GKlib" CACHE PATH "path to GKlib") 5 | set(SHARED FALSE CACHE BOOL "build a shared library") 6 | 7 | if(MSVC) 8 | set(METIS_INSTALL FALSE) 9 | else() 10 | set(METIS_INSTALL TRUE) 11 | endif() 12 | 13 | # Configure libmetis library. 14 | if(SHARED) 15 | set(METIS_LIBRARY_TYPE SHARED) 16 | else() 17 | set(METIS_LIBRARY_TYPE STATIC) 18 | endif(SHARED) 19 | 20 | include(${GKLIB_PATH}/GKlibSystem.cmake) 21 | # Add include directories. 22 | include_directories(${GKLIB_PATH}) 23 | include_directories(include) 24 | # Recursively look for CMakeLists.txt in subdirs. 25 | add_subdirectory("include") 26 | add_subdirectory("libmetis") 27 | add_subdirectory("programs") 28 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/BUILD.txt: -------------------------------------------------------------------------------- 1 | Building GKlib requires CMake 2.8. Once you've installed CMake run 2 | 3 | $ make 4 | 5 | This will build the GKlib library in build//. Options can be tweaked by 6 | running make config. For example, 7 | 8 | $ make config openmp=ON 9 | $ make 10 | 11 | will build GKlib will OpenMP support if it is available. 12 | 13 | GKlib can be installed with 14 | 15 | $ make install 16 | 17 | and uninstalled with 18 | 19 | $ make uninstall 20 | 21 | You can choose the installation prefix with make config: 22 | 23 | $ make config prefix=~/local 24 | 25 | will cause GKlib to be install in the ~/local tree. 26 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8) 2 | project(GKlib) 3 | 4 | get_filename_component(abs "." ABSOLUTE) 5 | set(GKLIB_PATH ${abs}) 6 | unset(abs) 7 | include(GKlibSystem.cmake) 8 | 9 | include_directories(".") 10 | add_library(GKlib STATIC ${GKlib_sources}) 11 | if(UNIX) 12 | target_link_libraries(GKlib m) 13 | endif(UNIX) 14 | 15 | include_directories("test") 16 | add_subdirectory("test") 17 | 18 | install(TARGETS GKlib 19 | ARCHIVE DESTINATION lib 20 | LIBRARY DESTINATION lib) 21 | install(FILES ${GKlib_includes} DESTINATION include) 22 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/GKlib.h: -------------------------------------------------------------------------------- 1 | /* 2 | * GKlib.h 3 | * 4 | * George's library of most frequently used routines 5 | * 6 | * $Id: GKlib.h 13005 2012-10-23 22:34:36Z karypis $ 7 | * 8 | */ 9 | 10 | #ifndef _GKLIB_H_ 11 | #define _GKLIB_H_ 1 12 | 13 | #define GKMSPACE 14 | 15 | #if defined(_MSC_VER) 16 | #define __MSC__ 17 | #endif 18 | #if defined(__ICC) 19 | #define __ICC__ 20 | #endif 21 | 22 | 23 | #include "gk_arch.h" /*!< This should be here, prior to the includes */ 24 | 25 | 26 | /************************************************************************* 27 | * Header file inclusion section 28 | **************************************************************************/ 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | #include 44 | 45 | #if defined(__WITHPCRE__) 46 | #include 47 | #else 48 | #if defined(USE_GKREGEX) 49 | #include "gkregex.h" 50 | #else 51 | #include 52 | #endif /* defined(USE_GKREGEX) */ 53 | #endif /* defined(__WITHPCRE__) */ 54 | 55 | 56 | 57 | #if defined(__OPENMP__) 58 | #include 59 | #endif 60 | 61 | 62 | 63 | 64 | #include 65 | #include 66 | #include 67 | #include 68 | #include 69 | #include 70 | 71 | #include 72 | #include 73 | #include 74 | #include 75 | #include 76 | #include 77 | #include 78 | 79 | #include 80 | 81 | 82 | #endif /* GKlib.h */ 83 | 84 | 85 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/Makefile: -------------------------------------------------------------------------------- 1 | # Configuration options. 2 | gdb = not-set 3 | assert = not-set 4 | assert2 = not-set 5 | debug = not-set 6 | gprof = not-set 7 | openmp = not-set 8 | prefix = not-set 9 | pcre = not-set 10 | gkregex = not-set 11 | gkrand = not-set 12 | 13 | 14 | # Basically proxies everything to the builddir cmake. 15 | cputype = $(shell uname -m | sed "s/\\ /_/g") 16 | systype = $(shell uname -s) 17 | 18 | BUILDDIR = build/$(systype)-$(cputype) 19 | 20 | # Process configuration options. 21 | CONFIG_FLAGS = -DCMAKE_VERBOSE_MAKEFILE=1 22 | ifneq ($(gdb), not-set) 23 | CONFIG_FLAGS += -DGDB=$(gdb) 24 | endif 25 | ifneq ($(assert), not-set) 26 | CONFIG_FLAGS += -DASSERT=$(assert) 27 | endif 28 | ifneq ($(assert2), not-set) 29 | CONFIG_FLAGS += -DASSERT2=$(assert2) 30 | endif 31 | ifneq ($(debug), not-set) 32 | CONFIG_FLAGS += -DDEBUG=$(debug) 33 | endif 34 | ifneq ($(gprof), not-set) 35 | CONFIG_FLAGS += -DGPROF=$(gprof) 36 | endif 37 | ifneq ($(openmp), not-set) 38 | CONFIG_FLAGS += -DOPENMP=$(openmp) 39 | endif 40 | ifneq ($(pcre), not-set) 41 | CONFIG_FLAGS += -DPCRE=$(pcre) 42 | endif 43 | ifneq ($(gkregex), not-set) 44 | CONFIG_FLAGS += -DGKREGEX=$(pcre) 45 | endif 46 | ifneq ($(gkrand), not-set) 47 | CONFIG_FLAGS += -DGKRAND=$(pcre) 48 | endif 49 | ifneq ($(prefix), not-set) 50 | CONFIG_FLAGS += -DCMAKE_INSTALL_PREFIX=$(prefix) 51 | endif 52 | 53 | define run-config 54 | mkdir -p $(BUILDDIR) 55 | cd $(BUILDDIR) && cmake $(CURDIR) $(CONFIG_FLAGS) 56 | endef 57 | 58 | all clean install: $(BUILDDIR) 59 | make -C $(BUILDDIR) $@ 60 | 61 | uninstall: 62 | xargs rm < $(BUILDDIR)/install_manifest.txt 63 | 64 | $(BUILDDIR): 65 | $(run-config) 66 | 67 | config: distclean 68 | $(run-config) 69 | 70 | distclean: 71 | rm -rf $(BUILDDIR) 72 | 73 | remake: 74 | find . -name CMakeLists.txt -exec touch {} ';' 75 | 76 | .PHONY: config distclean all clean install uninstall remake 77 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/blas.c: -------------------------------------------------------------------------------- 1 | /*! 2 | \file blas.c 3 | \brief This file contains GKlib's implementation of BLAS-like routines 4 | 5 | The BLAS routines that are currently implemented are mostly level-one. 6 | They follow a naming convention of the type gk_[type][name], where 7 | [type] is one of c, i, f, and d, based on C's four standard scalar 8 | datatypes of characters, integers, floats, and doubles. 9 | 10 | These routines are implemented using a generic macro template, 11 | which is used for code generation. 12 | 13 | \date Started 9/28/95 14 | \author George 15 | \version\verbatim $Id: blas.c 11848 2012-04-20 13:47:37Z karypis $ \endverbatim 16 | */ 17 | 18 | #include 19 | 20 | 21 | 22 | /*************************************************************************/ 23 | /*! Use the templates to generate BLAS routines for the scalar data types */ 24 | /*************************************************************************/ 25 | GK_MKBLAS(gk_c, char, int) 26 | GK_MKBLAS(gk_i, int, int) 27 | GK_MKBLAS(gk_i32, int32_t, int32_t) 28 | GK_MKBLAS(gk_i64, int64_t, int64_t) 29 | GK_MKBLAS(gk_z, ssize_t, ssize_t) 30 | GK_MKBLAS(gk_f, float, float) 31 | GK_MKBLAS(gk_d, double, double) 32 | GK_MKBLAS(gk_idx, gk_idx_t, gk_idx_t) 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/conf/check_thread_storage.c: -------------------------------------------------------------------------------- 1 | extern __thread int x; 2 | 3 | int main(int argc, char **argv) { 4 | return 0; 5 | } 6 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/gk_arch.h: -------------------------------------------------------------------------------- 1 | /*! 2 | \file gk_arch.h 3 | \brief This file contains various architecture-specific declerations 4 | 5 | \date Started 3/27/2007 6 | \author George 7 | \version\verbatim $Id: gk_arch.h 10711 2011-08-31 22:23:04Z karypis $ \endverbatim 8 | */ 9 | 10 | #ifndef _GK_ARCH_H_ 11 | #define _GK_ARCH_H_ 12 | 13 | /************************************************************************* 14 | * Architecture-specific differences in header files 15 | **************************************************************************/ 16 | #ifdef LINUX 17 | #if !defined(__USE_XOPEN) 18 | #define __USE_XOPEN 19 | #endif 20 | #if !defined(_XOPEN_SOURCE) 21 | #define _XOPEN_SOURCE 600 22 | #endif 23 | #if !defined(__USE_XOPEN2K) 24 | #define __USE_XOPEN2K 25 | #endif 26 | #endif 27 | 28 | 29 | #ifdef HAVE_EXECINFO_H 30 | #include 31 | #endif 32 | 33 | 34 | #ifdef __MSC__ 35 | #include "ms_stdint.h" 36 | #include "ms_inttypes.h" 37 | #include "ms_stat.h" 38 | #else 39 | #ifndef SUNOS 40 | #include 41 | #endif 42 | #include 43 | #include 44 | #include 45 | #include 46 | #endif 47 | 48 | 49 | /************************************************************************* 50 | * Architecture-specific modifications 51 | **************************************************************************/ 52 | #ifdef WIN32 53 | typedef ptrdiff_t ssize_t; 54 | #endif 55 | 56 | 57 | #ifdef SUNOS 58 | #define PTRDIFF_MAX INT64_MAX 59 | #endif 60 | 61 | #ifdef __MSC__ 62 | /* MSC does not have rint() function */ 63 | #define rint(x) ((int)((x)+0.5)) 64 | 65 | /* MSC does not have INFINITY defined */ 66 | #ifndef INFINITY 67 | #define INFINITY FLT_MAX 68 | #endif 69 | #endif 70 | 71 | #endif 72 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/gk_defs.h: -------------------------------------------------------------------------------- 1 | /*! 2 | \file gk_defs.h 3 | \brief This file contains various constants definitions 4 | 5 | \date Started 3/27/2007 6 | \author George 7 | \version\verbatim $Id: gk_defs.h 12732 2012-09-24 20:54:50Z karypis $ \endverbatim 8 | */ 9 | 10 | #ifndef _GK_DEFS_H_ 11 | #define _GK_DEFS_H_ 12 | 13 | 14 | #define LTERM (void **) 0 /* List terminator for GKfree() */ 15 | 16 | /* mopt_t types */ 17 | #define GK_MOPT_MARK 1 18 | #define GK_MOPT_CORE 2 19 | #define GK_MOPT_HEAP 3 20 | 21 | #define HTABLE_EMPTY -1 22 | #define HTABLE_DELETED -2 23 | #define HTABLE_FIRST 1 24 | #define HTABLE_NEXT 2 25 | 26 | /* pdb corruption bit switches */ 27 | #define CRP_ALTLOCS 1 28 | #define CRP_MISSINGCA 2 29 | #define CRP_MISSINGBB 4 30 | #define CRP_MULTICHAIN 8 31 | #define CRP_MULTICA 16 32 | #define CRP_MULTIBB 32 33 | 34 | #define MAXLINELEN 300000 35 | 36 | /* GKlib signals to standard signal mapping */ 37 | #define SIGMEM SIGABRT 38 | #define SIGERR SIGTERM 39 | 40 | 41 | /* CSR-related defines */ 42 | #define GK_CSR_ROW 1 43 | #define GK_CSR_COL 2 44 | 45 | #define GK_CSR_MAXTF 1 46 | #define GK_CSR_SQRT 2 47 | #define GK_CSR_POW25 3 48 | #define GK_CSR_POW65 4 49 | #define GK_CSR_POW75 5 50 | #define GK_CSR_POW85 6 51 | #define GK_CSR_LOG 7 52 | #define GK_CSR_IDF 8 53 | #define GK_CSR_IDF2 9 54 | #define GK_CSR_MAXTF2 10 55 | 56 | #define GK_CSR_COS 1 57 | #define GK_CSR_JAC 2 58 | #define GK_CSR_MIN 3 59 | #define GK_CSR_AMIN 4 60 | 61 | #define GK_CSR_FMT_CLUTO 1 62 | #define GK_CSR_FMT_CSR 2 63 | #define GK_CSR_FMT_METIS 3 64 | #define GK_CSR_FMT_BINROW 4 65 | #define GK_CSR_FMT_BINCOL 5 66 | 67 | #define GK_GRAPH_FMT_METIS 1 68 | 69 | #endif 70 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/gk_externs.h: -------------------------------------------------------------------------------- 1 | /*! 2 | \file gk_externs.h 3 | \brief This file contains definitions of external variables created by GKlib 4 | 5 | \date Started 3/27/2007 6 | \author George 7 | \version\verbatim $Id: gk_externs.h 10711 2011-08-31 22:23:04Z karypis $ \endverbatim 8 | */ 9 | 10 | #ifndef _GK_EXTERNS_H_ 11 | #define _GK_EXTERNS_H_ 12 | 13 | 14 | /************************************************************************* 15 | * Extern variable definition. Hopefully, the __thread makes them thread-safe. 16 | **************************************************************************/ 17 | #ifndef _GK_ERROR_C_ 18 | /* declared in error.c */ 19 | extern __thread int gk_cur_jbufs; 20 | extern __thread jmp_buf gk_jbufs[]; 21 | extern __thread jmp_buf gk_jbuf; 22 | 23 | #endif 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/gk_getopt.h: -------------------------------------------------------------------------------- 1 | /*! 2 | \file gk_getopt.h 3 | \brief This file contains GNU's externs/structs/prototypes 4 | 5 | \date Started 3/27/2007 6 | \author George 7 | \version\verbatim $Id: gk_getopt.h 10711 2011-08-31 22:23:04Z karypis $ \endverbatim 8 | */ 9 | 10 | #ifndef _GK_GETOPT_H_ 11 | #define _GK_GETOPT_H_ 12 | 13 | 14 | /* Externals from getopt.c */ 15 | extern char *gk_optarg; 16 | extern int gk_optind; 17 | extern int gk_opterr; 18 | extern int gk_optopt; 19 | 20 | 21 | /*! \brief The structure that stores the information about the command-line options 22 | 23 | This structure describes a single long option name for the sake of 24 | gk_getopt_long(). The argument long_options must be an array 25 | of these structures, one for each long option. Terminate the array with 26 | an element containing all zeros. 27 | */ 28 | struct gk_option { 29 | char *name; /*!< This field is the name of the option. */ 30 | int has_arg; /*!< This field says whether the option takes an argument. 31 | It is an integer, and there are three legitimate values: 32 | no_argument, required_argument and optional_argument. 33 | */ 34 | int *flag; /*!< See the discussion on ::gk_option#val */ 35 | int val; /*!< These fields control how to report or act on the option 36 | when it occurs. 37 | 38 | If flag is a null pointer, then the val is a value which 39 | identifies this option. Often these values are chosen 40 | to uniquely identify particular long options. 41 | 42 | If flag is not a null pointer, it should be the address 43 | of an int variable which is the flag for this option. 44 | The value in val is the value to store in the flag to 45 | indicate that the option was seen. */ 46 | }; 47 | 48 | /* Names for the values of the `has_arg' field of `struct gk_option'. */ 49 | #define no_argument 0 50 | #define required_argument 1 51 | #define optional_argument 2 52 | 53 | 54 | /* Function prototypes */ 55 | extern int gk_getopt(int __argc, char **__argv, char *__shortopts); 56 | extern int gk_getopt_long(int __argc, char **__argv, char *__shortopts, 57 | struct gk_option *__longopts, int *__longind); 58 | extern int gk_getopt_long_only (int __argc, char **__argv, 59 | char *__shortopts, struct gk_option *__longopts, int *__longind); 60 | 61 | 62 | 63 | #endif 64 | 65 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/gk_mkutils.h: -------------------------------------------------------------------------------- 1 | /*! 2 | \file 3 | \brief Templates for various utility routines 4 | 5 | \date Started 5/28/07 6 | \author George 7 | \version\verbatim $Id: gk_mkutils.h 10711 2011-08-31 22:23:04Z karypis $ \endverbatim 8 | */ 9 | 10 | #ifndef _GK_MKUTILS_H_ 11 | #define _GK_MKUTILS_H_ 12 | 13 | 14 | #define GK_MKARRAY2CSR(PRFX, TYPE)\ 15 | /*************************************************************************/\ 16 | /*! The macro for gk_?array2csr() routine */\ 17 | /**************************************************************************/\ 18 | void PRFX ## array2csr(TYPE n, TYPE range, TYPE *array, TYPE *ptr, TYPE *ind)\ 19 | {\ 20 | TYPE i;\ 21 | \ 22 | for (i=0; i<=range; i++)\ 23 | ptr[i] = 0;\ 24 | \ 25 | for (i=0; i>1)-2) 33 | 34 | #define PRIGKIDX "zd" 35 | #define SCNGKIDX "zd" 36 | 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/ms_stat.h: -------------------------------------------------------------------------------- 1 | #ifndef _MSC_VER // [ 2 | #error "Use this header only with Microsoft Visual C++ compilers!" 3 | #endif // _MSC_VER ] 4 | 5 | #ifndef _MS_STAT_H_ 6 | #define _MS_STAT_H_ 7 | 8 | #if _MSC_VER > 1000 9 | #pragma once 10 | #endif 11 | 12 | #include 13 | /* Test macros for file types. */ 14 | 15 | #define __S_ISTYPE(mode, mask) (((mode) & S_IFMT) == (mask)) 16 | 17 | #define S_ISDIR(mode) __S_ISTYPE((mode), S_IFDIR) 18 | #define S_ISCHR(mode) __S_ISTYPE((mode), S_IFCHR) 19 | #define S_ISBLK(mode) __S_ISTYPE((mode), S_IFBLK) 20 | #define S_ISREG(mode) __S_ISTYPE((mode), S_IFREG) 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/omp.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1997, Regents of the University of Minnesota 3 | * 4 | * omp.c 5 | * 6 | * This file contains "fake" implementations of OpenMP's runtime libraries 7 | * 8 | */ 9 | 10 | #include 11 | 12 | #ifdef GK_NOOPENMP /* remove those for now */ 13 | #if !defined(_OPENMP) 14 | void omp_set_num_threads(int num_threads) { return; } 15 | int omp_get_num_threads(void) { return 1; } 16 | int omp_get_max_threads(void) { return 1; } 17 | int omp_get_thread_num(void) { return 0; } 18 | int omp_get_num_procs(void) { return 1; } 19 | int omp_in_parallel(void) { return 0; } 20 | void omp_set_dynamic(int num_threads) { return; } 21 | int omp_get_dynamic(void) { return 0; } 22 | void omp_set_nested(int nested) { return; } 23 | int omp_get_nested(void) { return 0; } 24 | #endif 25 | #endif 26 | 27 | 28 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/pqueue.c: -------------------------------------------------------------------------------- 1 | /*! 2 | \file pqueue.c 3 | \brief This file implements various max-priority queues. 4 | 5 | The priority queues are generated using the GK_MKPQUEUE macro. 6 | 7 | \date Started 3/27/2007 8 | \author George 9 | \version\verbatim $Id: pqueue.c 10711 2011-08-31 22:23:04Z karypis $ \endverbatim 10 | */ 11 | 12 | #include 13 | 14 | 15 | /*************************************************************************/ 16 | /*! Create the various max priority queues */ 17 | /*************************************************************************/ 18 | #define key_gt(a, b) ((a) > (b)) 19 | GK_MKPQUEUE(gk_ipq, gk_ipq_t, gk_ikv_t, int, gk_idx_t, gk_ikvmalloc, INT_MAX, key_gt) 20 | GK_MKPQUEUE(gk_i32pq, gk_i32pq_t, gk_i32kv_t, int32_t, gk_idx_t, gk_i32kvmalloc, INT32_MAX, key_gt) 21 | GK_MKPQUEUE(gk_i64pq, gk_i64pq_t, gk_i64kv_t, int64_t, gk_idx_t, gk_i64kvmalloc, INT64_MAX, key_gt) 22 | GK_MKPQUEUE(gk_fpq, gk_fpq_t, gk_fkv_t, float, gk_idx_t, gk_fkvmalloc, FLT_MAX, key_gt) 23 | GK_MKPQUEUE(gk_dpq, gk_dpq_t, gk_dkv_t, double, gk_idx_t, gk_dkvmalloc, DBL_MAX, key_gt) 24 | GK_MKPQUEUE(gk_idxpq, gk_idxpq_t, gk_idxkv_t, gk_idx_t, gk_idx_t, gk_idxkvmalloc, GK_IDX_MAX, key_gt) 25 | #undef key_gt 26 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Where the header files reside 2 | #include_directories(../) 3 | 4 | # Build program. 5 | add_executable(strings strings.c) 6 | add_executable(gksort gksort.c) 7 | add_executable(fis fis.c) 8 | add_executable(rw rw.c) 9 | add_executable(gkgraph gkgraph.c) 10 | foreach(prog strings gksort fis rw gkgraph) 11 | target_link_libraries(${prog} GKlib) 12 | endforeach(prog) 13 | 14 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/test/Makefile.old: -------------------------------------------------------------------------------- 1 | include Makefile.in 2 | 3 | STRINGSOBJS = $(PRGBUILDDIR)/strings$(OBJEXT) 4 | GKSORTOBJS = $(PRGBUILDDIR)/gksort$(OBJEXT) 5 | FISOBJS = $(PRGBUILDDIR)/fis$(OBJEXT) 6 | 7 | HEADERS = $(wildcard $(GKLIBINCDIR)/*.h) 8 | 9 | 10 | default: $(BUILDDIR)/strings$(EXEEXT) $(BUILDDIR)/gksort$(EXEEXT) $(BUILDDIR)/fis$(EXEEXT) 11 | 12 | 13 | $(BUILDDIR)/strings$(EXEEXT): $(STRINGSOBJS) $(GKLIBBUILDDIR)/libGKlib.a 14 | $(LD) $(LDOPTIONS) $(EXEOUTPUTFILE) $(STRINGSOBJS) $(LIBSDIR) $(LIBS) ; $(MERGEMANIFEST) 15 | chmod 744 $@ 16 | 17 | $(BUILDDIR)/gksort$(EXEEXT): $(GKSORTOBJS) $(GKLIBBUILDDIR)/libGKlib.a 18 | $(LD) $(LDOPTIONS) $(EXEOUTPUTFILE) $(GKSORTOBJS) $(LIBSDIR) $(LIBS) ; $(MERGEMANIFEST) 19 | chmod 744 $@ 20 | 21 | $(BUILDDIR)/fis$(EXEEXT): $(FISOBJS) $(GKLIBBUILDDIR)/libGKlib.a 22 | $(LD) $(LDOPTIONS) $(EXEOUTPUTFILE) $(FISOBJS) $(LIBSDIR) $(LIBS) ; $(MERGEMANIFEST) 23 | chmod 744 $@ 24 | 25 | 26 | clean: 27 | rm -rf $(PRGBUILDDIR) 28 | 29 | realclean: 30 | rm -rf $(PRGBUILDDIR) ;\ 31 | rm -rf $(BUILDDIR) ; 32 | 33 | 34 | $(STRINGSOBJS) : $(HEADERS) Makefile.in Makefile $(GKLIBBUILDDIR)/libGKlib.a 35 | 36 | 37 | $(PRGBUILDDIR)/%$(OBJEXT) : %.c 38 | $(CC) $(CFLAGS) $(SOURCEFILE) $(OUTPUTFILE) 39 | 40 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/test/strings.c: -------------------------------------------------------------------------------- 1 | /*! 2 | \file strings.c 3 | \brief Testing module for the string functions in GKlib 4 | 5 | \date Started 3/5/2007 6 | \author George 7 | \version\verbatim $Id: strings.c 10711 2011-08-31 22:23:04Z karypis $ \endverbatim 8 | */ 9 | 10 | #include 11 | 12 | 13 | /*************************************************************************/ 14 | /*! Testing module for gk_strstr_replace() */ 15 | /*************************************************************************/ 16 | void test_strstr_replace() 17 | { 18 | char *new_str; 19 | int rc; 20 | 21 | rc = gk_strstr_replace("This is a simple string", "s", "S", "", &new_str); 22 | printf("%d, %s.\n", rc, new_str); 23 | gk_free((void **)&new_str, LTERM); 24 | 25 | 26 | rc = gk_strstr_replace("This is a simple string", "s", "S", "g", &new_str); 27 | printf("%d, %s.\n", rc, new_str); 28 | gk_free((void **)&new_str, LTERM); 29 | 30 | 31 | rc = gk_strstr_replace("This is a simple SS & ss string", "s", "T", "g", &new_str); 32 | printf("%d, %s.\n", rc, new_str); 33 | gk_free((void **)&new_str, LTERM); 34 | 35 | 36 | rc = gk_strstr_replace("This is a simple SS & ss string", "s", "T", "ig", &new_str); 37 | printf("%d, %s.\n", rc, new_str); 38 | gk_free((void **)&new_str, LTERM); 39 | 40 | rc = gk_strstr_replace("This is a simple SS & ss string", "\\b\\w(\\w+)\\w\\b", "$1", "ig", &new_str); 41 | printf("%d, %s.\n", rc, new_str); 42 | gk_free((void **)&new_str, LTERM); 43 | 44 | rc = gk_strstr_replace("This is a simple SS & ss string", "\\b\\w+\\b", "word", "ig", &new_str); 45 | printf("%d, %s.\n", rc, new_str); 46 | gk_free((void **)&new_str, LTERM); 47 | 48 | rc = gk_strstr_replace("http://www.cs.umn.edu/This-is-something-T12323?pp=20&page=4", 49 | "(http://www\\.cs\\.umn\\.edu/)(.*)-T(\\d+)", "$1$2-P$3", "g", &new_str); 50 | printf("%d, %s.\n", rc, new_str); 51 | gk_free((void **)&new_str, LTERM); 52 | 53 | rc = gk_strstr_replace("http://www.cs.umn.edu/This-is-something-T12323?pp=20&page=4", 54 | "(\\d+)", "number:$1", "ig", &new_str); 55 | printf("%d, %s.\n", rc, new_str); 56 | gk_free((void **)&new_str, LTERM); 57 | 58 | 59 | rc = gk_strstr_replace("http://www.cs.umn.edu/This-is-something-T12323?pp=20&page=4", 60 | "(http://www\\.cs\\.umn\\.edu/)", "[$1]", "g", &new_str); 61 | printf("%d, %s.\n", rc, new_str); 62 | gk_free((void **)&new_str, LTERM); 63 | 64 | 65 | 66 | } 67 | 68 | 69 | 70 | int main() 71 | { 72 | test_strstr_replace(); 73 | 74 | /* 75 | { 76 | int i; 77 | for (i=0; i<1000; i++) 78 | printf("%d\n", RandomInRange(3)); 79 | } 80 | */ 81 | } 82 | 83 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/timers.c: -------------------------------------------------------------------------------- 1 | /*! 2 | \file timers.c 3 | \brief Various timing functions 4 | 5 | \date Started 4/12/2007 6 | \author George 7 | \version\verbatim $Id: timers.c 10711 2011-08-31 22:23:04Z karypis $ \endverbatim 8 | */ 9 | 10 | 11 | #include 12 | 13 | 14 | 15 | 16 | /************************************************************************* 17 | * This function returns the CPU seconds 18 | **************************************************************************/ 19 | double gk_WClockSeconds(void) 20 | { 21 | #ifdef __GNUC__ 22 | struct timeval ctime; 23 | 24 | gettimeofday(&ctime, NULL); 25 | 26 | return (double)ctime.tv_sec + (double).000001*ctime.tv_usec; 27 | #else 28 | return (double)time(NULL); 29 | #endif 30 | } 31 | 32 | 33 | /************************************************************************* 34 | * This function returns the CPU seconds 35 | **************************************************************************/ 36 | double gk_CPUSeconds(void) 37 | { 38 | //#ifdef __OPENMP__ 39 | #ifdef __OPENMPXXXX__ 40 | return omp_get_wtime(); 41 | #else 42 | #if defined(WIN32) || defined(__MINGW32__) 43 | return((double) clock()/CLOCKS_PER_SEC); 44 | #else 45 | struct rusage r; 46 | 47 | getrusage(RUSAGE_SELF, &r); 48 | return ((r.ru_utime.tv_sec + r.ru_stime.tv_sec) + 1.0e-6*(r.ru_utime.tv_usec + r.ru_stime.tv_usec)); 49 | #endif 50 | #endif 51 | } 52 | 53 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/GKlib/tokenizer.c: -------------------------------------------------------------------------------- 1 | /*! 2 | \file tokenizer.c 3 | \brief String tokenization routines 4 | 5 | This file contains various routines for splitting an input string into 6 | tokens and returning them in form of a list. The goal is to mimic perl's 7 | split function. 8 | 9 | \date Started 11/23/04 10 | \author George 11 | \version\verbatim $Id: tokenizer.c 10711 2011-08-31 22:23:04Z karypis $ \endverbatim 12 | */ 13 | 14 | 15 | #include 16 | 17 | 18 | /************************************************************************ 19 | * This function tokenizes a string based on the user-supplied delimiters 20 | * list. The resulting tokens are returned into an array of strings. 21 | *************************************************************************/ 22 | void gk_strtokenize(char *str, char *delim, gk_Tokens_t *tokens) 23 | { 24 | int i, ntoks, slen; 25 | 26 | tokens->strbuf = gk_strdup(str); 27 | 28 | slen = strlen(str); 29 | str = tokens->strbuf; 30 | 31 | /* Scan once to determine the number of tokens */ 32 | for (ntoks=0, i=0; intoks = ntoks; 49 | tokens->list = (char **)gk_malloc(ntoks*sizeof(char *), "strtokenize: tokens->list"); 50 | 51 | 52 | /* Scan a second time to mark and link the tokens */ 53 | for (ntoks=0, i=0; ilist[ntoks++] = str+i; 62 | 63 | /* Consume all the consecutive characters from the token */ 64 | while (ilist, &tokens->strbuf, LTERM); 76 | } 77 | 78 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/Install.txt: -------------------------------------------------------------------------------- 1 | 2 | These are some preliminary instructions for the 5.0 release of METIS. 3 | 4 | 1. You need to have a C compiler that supports the C99 standard. 5 | Gcc works just fine, but I have not tested it on many other architectures 6 | (any feedback/patches for different architectures are welcomed) 7 | 8 | 2. You need to have GNU make and CMake 2.8 (http://www.cmake.org/) installed. 9 | 10 | 3. Edit the file include/metis.h and specify the width (32 or 64 bits) of the 11 | elementary data type used in METIS. This is controled by the IDXTYPEWIDTH 12 | constant. 13 | 14 | For now, on a 32 bit architecture you can only specify a width of 32, 15 | whereas for a 64 bit architecture you can specify a width of either 16 | 32 or 64 bits. 17 | 18 | 19 | 4. At the top of Metis' directory execute 'make' and follow the instructions. 20 | 21 | make 22 | 23 | 5. To build on windows using Visual Studio follow the instructions in the 24 | file BUILD-Windows.txt. 25 | 26 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/LICENSE.txt: -------------------------------------------------------------------------------- 1 | 2 | Copyright & License Notice 3 | --------------------------- 4 | 5 | Copyright 1995-2013, Regents of the University of Minnesota 6 | 7 | Licensed under the Apache License, Version 2.0 (the "License"); 8 | you may not use this file except in compliance with the License. 9 | You may obtain a copy of the License at 10 | 11 | http://www.apache.org/licenses/LICENSE-2.0 12 | 13 | Unless required by applicable law or agreed to in writing, software 14 | distributed under the License is distributed on an "AS IS" BASIS, 15 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 16 | implied. See the License for the specific language governing 17 | permissions and limitations under the License. 18 | 19 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/Makefile: -------------------------------------------------------------------------------- 1 | # Configuration options. 2 | gdb = not-set 3 | assert = not-set 4 | assert2 = not-set 5 | debug = not-set 6 | gprof = not-set 7 | openmp = not-set 8 | prefix = not-set 9 | gklib_path = not-set 10 | shared = not-set 11 | cc = not-set 12 | 13 | 14 | # Basically proxies everything to the builddir cmake. 15 | 16 | cputype = $(shell uname -m | sed "s/\\ /_/g") 17 | systype = $(shell uname -s) 18 | 19 | BUILDDIR = build/$(systype)-$(cputype) 20 | 21 | # Process configuration options. 22 | CONFIG_FLAGS = -DCMAKE_VERBOSE_MAKEFILE=1 23 | ifeq ($(gklib_path), not-set) 24 | gklib_path = GKlib 25 | endif 26 | CONFIG_FLAGS += -DGKLIB_PATH=$(abspath $(gklib_path)) 27 | ifneq ($(gdb), not-set) 28 | CONFIG_FLAGS += -DGDB=$(gdb) 29 | endif 30 | ifneq ($(assert), not-set) 31 | CONFIG_FLAGS += -DASSERT=$(assert) 32 | endif 33 | ifneq ($(assert2), not-set) 34 | CONFIG_FLAGS += -DASSERT2=$(assert2) 35 | endif 36 | ifneq ($(debug), not-set) 37 | CONFIG_FLAGS += -DDEBUG=$(debug) 38 | endif 39 | ifneq ($(gprof), not-set) 40 | CONFIG_FLAGS += -DGPROF=$(gprof) 41 | endif 42 | ifneq ($(openmp), not-set) 43 | CONFIG_FLAGS += -DOPENMP=$(openmp) 44 | endif 45 | ifneq ($(prefix), not-set) 46 | CONFIG_FLAGS += -DCMAKE_INSTALL_PREFIX=$(prefix) 47 | endif 48 | ifneq ($(shared), not-set) 49 | CONFIG_FLAGS += -DSHARED=1 50 | endif 51 | ifneq ($(cc), not-set) 52 | CONFIG_FLAGS += -DCMAKE_C_COMPILER=$(cc) 53 | endif 54 | 55 | VERNUM=5.1.0 56 | PKGNAME=metis-$(VERNUM) 57 | 58 | define run-config 59 | mkdir -p $(BUILDDIR) 60 | cd $(BUILDDIR) && cmake $(CURDIR) $(CONFIG_FLAGS) 61 | endef 62 | 63 | all clean install: 64 | @if [ ! -f $(BUILDDIR)/Makefile ]; then \ 65 | more BUILD.txt; \ 66 | else \ 67 | make -C $(BUILDDIR) $@ $(MAKEFLAGS); \ 68 | fi 69 | 70 | uninstall: 71 | xargs rm < $(BUILDDIR)/install_manifest.txt 72 | 73 | config: distclean 74 | $(run-config) 75 | 76 | distclean: 77 | rm -rf $(BUILDDIR) 78 | 79 | remake: 80 | find . -name CMakeLists.txt -exec touch {} ';' 81 | 82 | dist: 83 | utils/mkdist.sh $(PKGNAME) 84 | 85 | .PHONY: config distclean all clean install uninstall remake dist 86 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/CMakeFiles/3.16.3/CMakeCCompiler.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_C_COMPILER "/usr/bin/cc") 2 | set(CMAKE_C_COMPILER_ARG1 "") 3 | set(CMAKE_C_COMPILER_ID "GNU") 4 | set(CMAKE_C_COMPILER_VERSION "9.4.0") 5 | set(CMAKE_C_COMPILER_VERSION_INTERNAL "") 6 | set(CMAKE_C_COMPILER_WRAPPER "") 7 | set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") 8 | set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") 9 | set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") 10 | set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") 11 | set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") 12 | 13 | set(CMAKE_C_PLATFORM_ID "Linux") 14 | set(CMAKE_C_SIMULATE_ID "") 15 | set(CMAKE_C_COMPILER_FRONTEND_VARIANT "") 16 | set(CMAKE_C_SIMULATE_VERSION "") 17 | 18 | 19 | 20 | set(CMAKE_AR "/usr/bin/ar") 21 | set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-9") 22 | set(CMAKE_RANLIB "/usr/bin/ranlib") 23 | set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-9") 24 | set(CMAKE_LINKER "/usr/bin/ld") 25 | set(CMAKE_MT "") 26 | set(CMAKE_COMPILER_IS_GNUCC 1) 27 | set(CMAKE_C_COMPILER_LOADED 1) 28 | set(CMAKE_C_COMPILER_WORKS TRUE) 29 | set(CMAKE_C_ABI_COMPILED TRUE) 30 | set(CMAKE_COMPILER_IS_MINGW ) 31 | set(CMAKE_COMPILER_IS_CYGWIN ) 32 | if(CMAKE_COMPILER_IS_CYGWIN) 33 | set(CYGWIN 1) 34 | set(UNIX 1) 35 | endif() 36 | 37 | set(CMAKE_C_COMPILER_ENV_VAR "CC") 38 | 39 | if(CMAKE_COMPILER_IS_MINGW) 40 | set(MINGW 1) 41 | endif() 42 | set(CMAKE_C_COMPILER_ID_RUN 1) 43 | set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) 44 | set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) 45 | set(CMAKE_C_LINKER_PREFERENCE 10) 46 | 47 | # Save compiler ABI information. 48 | set(CMAKE_C_SIZEOF_DATA_PTR "8") 49 | set(CMAKE_C_COMPILER_ABI "ELF") 50 | set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 51 | 52 | if(CMAKE_C_SIZEOF_DATA_PTR) 53 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") 54 | endif() 55 | 56 | if(CMAKE_C_COMPILER_ABI) 57 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") 58 | endif() 59 | 60 | if(CMAKE_C_LIBRARY_ARCHITECTURE) 61 | set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 62 | endif() 63 | 64 | set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") 65 | if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) 66 | set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") 67 | endif() 68 | 69 | 70 | 71 | 72 | 73 | set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") 74 | set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") 75 | set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") 76 | set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") 77 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_C.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_C.bin -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_CXX.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_CXX.bin -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/CMakeFiles/3.16.3/CMakeSystem.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_HOST_SYSTEM "Linux-5.4.0-121-generic") 2 | set(CMAKE_HOST_SYSTEM_NAME "Linux") 3 | set(CMAKE_HOST_SYSTEM_VERSION "5.4.0-121-generic") 4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") 5 | 6 | 7 | 8 | set(CMAKE_SYSTEM "Linux-5.4.0-121-generic") 9 | set(CMAKE_SYSTEM_NAME "Linux") 10 | set(CMAKE_SYSTEM_VERSION "5.4.0-121-generic") 11 | set(CMAKE_SYSTEM_PROCESSOR "x86_64") 12 | 13 | set(CMAKE_CROSSCOMPILING "FALSE") 14 | 15 | set(CMAKE_SYSTEM_LOADED 1) 16 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/CMakeFiles/3.16.3/CompilerIdC/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/CMakeFiles/3.16.3/CompilerIdC/a.out -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/CMakeFiles/3.16.3/CompilerIdCXX/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/CMakeFiles/3.16.3/CompilerIdCXX/a.out -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/CMakeFiles/cmake.check_cache: -------------------------------------------------------------------------------- 1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file 2 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/3.16.3/CMakeCCompiler.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_C_COMPILER "/usr/bin/cc") 2 | set(CMAKE_C_COMPILER_ARG1 "") 3 | set(CMAKE_C_COMPILER_ID "GNU") 4 | set(CMAKE_C_COMPILER_VERSION "9.4.0") 5 | set(CMAKE_C_COMPILER_VERSION_INTERNAL "") 6 | set(CMAKE_C_COMPILER_WRAPPER "") 7 | set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") 8 | set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") 9 | set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") 10 | set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") 11 | set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") 12 | 13 | set(CMAKE_C_PLATFORM_ID "Linux") 14 | set(CMAKE_C_SIMULATE_ID "") 15 | set(CMAKE_C_COMPILER_FRONTEND_VARIANT "") 16 | set(CMAKE_C_SIMULATE_VERSION "") 17 | 18 | 19 | 20 | set(CMAKE_AR "/usr/bin/ar") 21 | set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-9") 22 | set(CMAKE_RANLIB "/usr/bin/ranlib") 23 | set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-9") 24 | set(CMAKE_LINKER "/usr/bin/ld") 25 | set(CMAKE_MT "") 26 | set(CMAKE_COMPILER_IS_GNUCC 1) 27 | set(CMAKE_C_COMPILER_LOADED 1) 28 | set(CMAKE_C_COMPILER_WORKS TRUE) 29 | set(CMAKE_C_ABI_COMPILED TRUE) 30 | set(CMAKE_COMPILER_IS_MINGW ) 31 | set(CMAKE_COMPILER_IS_CYGWIN ) 32 | if(CMAKE_COMPILER_IS_CYGWIN) 33 | set(CYGWIN 1) 34 | set(UNIX 1) 35 | endif() 36 | 37 | set(CMAKE_C_COMPILER_ENV_VAR "CC") 38 | 39 | if(CMAKE_COMPILER_IS_MINGW) 40 | set(MINGW 1) 41 | endif() 42 | set(CMAKE_C_COMPILER_ID_RUN 1) 43 | set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) 44 | set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) 45 | set(CMAKE_C_LINKER_PREFERENCE 10) 46 | 47 | # Save compiler ABI information. 48 | set(CMAKE_C_SIZEOF_DATA_PTR "8") 49 | set(CMAKE_C_COMPILER_ABI "ELF") 50 | set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 51 | 52 | if(CMAKE_C_SIZEOF_DATA_PTR) 53 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") 54 | endif() 55 | 56 | if(CMAKE_C_COMPILER_ABI) 57 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") 58 | endif() 59 | 60 | if(CMAKE_C_LIBRARY_ARCHITECTURE) 61 | set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 62 | endif() 63 | 64 | set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") 65 | if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) 66 | set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") 67 | endif() 68 | 69 | 70 | 71 | 72 | 73 | set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") 74 | set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") 75 | set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") 76 | set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") 77 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_C.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_C.bin -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_CXX.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_CXX.bin -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/3.16.3/CMakeSystem.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_HOST_SYSTEM "Linux-5.4.0-121-generic") 2 | set(CMAKE_HOST_SYSTEM_NAME "Linux") 3 | set(CMAKE_HOST_SYSTEM_VERSION "5.4.0-121-generic") 4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") 5 | 6 | 7 | 8 | set(CMAKE_SYSTEM "Linux-5.4.0-121-generic") 9 | set(CMAKE_SYSTEM_NAME "Linux") 10 | set(CMAKE_SYSTEM_VERSION "5.4.0-121-generic") 11 | set(CMAKE_SYSTEM_PROCESSOR "x86_64") 12 | 13 | set(CMAKE_CROSSCOMPILING "FALSE") 14 | 15 | set(CMAKE_SYSTEM_LOADED 1) 16 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/3.16.3/CompilerIdC/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/3.16.3/CompilerIdC/a.out -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/3.16.3/CompilerIdCXX/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/3.16.3/CompilerIdCXX/a.out -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/CMakeDirectoryInformation.cmake: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.16 3 | 4 | # Relative path conversion top directories. 5 | set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/data3/DRILL/metis/metis-5.1.0") 6 | set(CMAKE_RELATIVE_PATH_TOP_BINARY "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64") 7 | 8 | # Force unix paths in dependencies. 9 | set(CMAKE_FORCE_UNIX_PATHS 1) 10 | 11 | 12 | # The C and CXX include file regular expressions for this directory. 13 | set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") 14 | set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") 15 | set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) 16 | set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) 17 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/TargetDirectories.txt: -------------------------------------------------------------------------------- 1 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/install/strip.dir 2 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/install/local.dir 3 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/install.dir 4 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/list_install_components.dir 5 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/rebuild_cache.dir 6 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/edit_cache.dir 7 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/include/CMakeFiles/install/strip.dir 8 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/include/CMakeFiles/install/local.dir 9 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/include/CMakeFiles/install.dir 10 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/include/CMakeFiles/list_install_components.dir 11 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/include/CMakeFiles/rebuild_cache.dir 12 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/include/CMakeFiles/edit_cache.dir 13 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/install/strip.dir 14 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/install/local.dir 15 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/install.dir 16 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/list_install_components.dir 17 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/rebuild_cache.dir 18 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/edit_cache.dir 19 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir 20 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/install/strip.dir 21 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/install.dir 22 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/list_install_components.dir 23 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/rebuild_cache.dir 24 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/edit_cache.dir 25 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/cmpfillin.dir 26 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/graphchk.dir 27 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/m2gmetis.dir 28 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir 29 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir 30 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/install/local.dir 31 | /data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir 32 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/cmake.check_cache: -------------------------------------------------------------------------------- 1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file 2 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/CMakeFiles/progress.marks: -------------------------------------------------------------------------------- 1 | 88 2 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/cmake_install.cmake: -------------------------------------------------------------------------------- 1 | # Install script for directory: /data3/DRILL/metis/metis-5.1.0 2 | 3 | # Set the install prefix 4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX) 5 | set(CMAKE_INSTALL_PREFIX "/usr/local") 6 | endif() 7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 8 | 9 | # Set the install configuration name. 10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 11 | if(BUILD_TYPE) 12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" 13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") 14 | else() 15 | set(CMAKE_INSTALL_CONFIG_NAME "") 16 | endif() 17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") 18 | endif() 19 | 20 | # Set the component getting installed. 21 | if(NOT CMAKE_INSTALL_COMPONENT) 22 | if(COMPONENT) 23 | message(STATUS "Install component: \"${COMPONENT}\"") 24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") 25 | else() 26 | set(CMAKE_INSTALL_COMPONENT) 27 | endif() 28 | endif() 29 | 30 | # Install shared libraries without execute permission? 31 | if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) 32 | set(CMAKE_INSTALL_SO_NO_EXE "1") 33 | endif() 34 | 35 | # Is this installation the result of a crosscompile? 36 | if(NOT DEFINED CMAKE_CROSSCOMPILING) 37 | set(CMAKE_CROSSCOMPILING "FALSE") 38 | endif() 39 | 40 | if(NOT CMAKE_INSTALL_LOCAL_ONLY) 41 | # Include the install script for each subdirectory. 42 | include("/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/include/cmake_install.cmake") 43 | include("/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis/cmake_install.cmake") 44 | include("/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/cmake_install.cmake") 45 | 46 | endif() 47 | 48 | if(CMAKE_INSTALL_COMPONENT) 49 | set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") 50 | else() 51 | set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") 52 | endif() 53 | 54 | string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT 55 | "${CMAKE_INSTALL_MANIFEST_FILES}") 56 | file(WRITE "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/${CMAKE_INSTALL_MANIFEST}" 57 | "${CMAKE_INSTALL_MANIFEST_CONTENT}") 58 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/include/CMakeFiles/CMakeDirectoryInformation.cmake: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.16 3 | 4 | # Relative path conversion top directories. 5 | set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/data3/DRILL/metis/metis-5.1.0") 6 | set(CMAKE_RELATIVE_PATH_TOP_BINARY "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64") 7 | 8 | # Force unix paths in dependencies. 9 | set(CMAKE_FORCE_UNIX_PATHS 1) 10 | 11 | 12 | # The C and CXX include file regular expressions for this directory. 13 | set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") 14 | set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") 15 | set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) 16 | set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) 17 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/include/CMakeFiles/progress.marks: -------------------------------------------------------------------------------- 1 | 0 2 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/include/cmake_install.cmake: -------------------------------------------------------------------------------- 1 | # Install script for directory: /data3/DRILL/metis/metis-5.1.0/include 2 | 3 | # Set the install prefix 4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX) 5 | set(CMAKE_INSTALL_PREFIX "/usr/local") 6 | endif() 7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 8 | 9 | # Set the install configuration name. 10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 11 | if(BUILD_TYPE) 12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" 13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") 14 | else() 15 | set(CMAKE_INSTALL_CONFIG_NAME "") 16 | endif() 17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") 18 | endif() 19 | 20 | # Set the component getting installed. 21 | if(NOT CMAKE_INSTALL_COMPONENT) 22 | if(COMPONENT) 23 | message(STATUS "Install component: \"${COMPONENT}\"") 24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") 25 | else() 26 | set(CMAKE_INSTALL_COMPONENT) 27 | endif() 28 | endif() 29 | 30 | # Install shared libraries without execute permission? 31 | if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) 32 | set(CMAKE_INSTALL_SO_NO_EXE "1") 33 | endif() 34 | 35 | # Is this installation the result of a crosscompile? 36 | if(NOT DEFINED CMAKE_CROSSCOMPILING) 37 | set(CMAKE_CROSSCOMPILING "FALSE") 38 | endif() 39 | 40 | if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) 41 | file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include" TYPE FILE FILES "/data3/DRILL/metis/metis-5.1.0/include/metis.h") 42 | endif() 43 | 44 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/install_manifest.txt: -------------------------------------------------------------------------------- 1 | /usr/local/include/metis.h 2 | /usr/local/lib/libmetis.so 3 | /usr/local/bin/gpmetis 4 | /usr/local/bin/ndmetis 5 | /usr/local/bin/mpmetis 6 | /usr/local/bin/m2gmetis 7 | /usr/local/bin/graphchk 8 | /usr/local/bin/cmpfillin -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/CMakeDirectoryInformation.cmake: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.16 3 | 4 | # Relative path conversion top directories. 5 | set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/data3/DRILL/metis/metis-5.1.0") 6 | set(CMAKE_RELATIVE_PATH_TOP_BINARY "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64") 7 | 8 | # Force unix paths in dependencies. 9 | set(CMAKE_FORCE_UNIX_PATHS 1) 10 | 11 | 12 | # The C and CXX include file regular expressions for this directory. 13 | set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") 14 | set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") 15 | set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) 16 | set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) 17 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/b64.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/b64.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/blas.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/blas.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/csr.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/csr.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/error.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/error.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/evaluate.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/evaluate.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/fkvkselect.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/fkvkselect.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/fs.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/fs.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/getopt.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/getopt.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/gkregex.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/gkregex.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/graph.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/graph.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/htable.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/htable.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/io.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/io.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/itemsets.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/itemsets.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/mcore.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/mcore.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/memory.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/memory.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/omp.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/omp.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/pdb.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/pdb.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/pqueue.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/pqueue.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/random.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/random.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/rw.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/rw.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/seq.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/seq.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/sort.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/sort.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/string.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/string.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/timers.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/timers.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/tokenizer.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/tokenizer.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/util.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/__/GKlib/util.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/auxapi.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/auxapi.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/balance.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/balance.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/bucketsort.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/bucketsort.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/checkgraph.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/checkgraph.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/coarsen.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/coarsen.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/compress.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/compress.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/contig.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/contig.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/debug.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/debug.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/flags.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.16 3 | 4 | # compile C with /usr/bin/cc 5 | C_FLAGS = -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE -O3 -fPIC 6 | 7 | C_DEFINES = -Dmetis_EXPORTS 8 | 9 | C_INCLUDES = -I/data3/DRILL/metis/metis-5.1.0/GKlib -I/data3/DRILL/metis/metis-5.1.0/include -I/data3/DRILL/metis/metis-5.1.0/libmetis/. 10 | 11 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/fm.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/fm.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/fortran.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/fortran.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/frename.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/frename.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/gklib.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/gklib.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/graph.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/graph.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/initpart.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/initpart.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/kmetis.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/kmetis.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/kwayfm.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/kwayfm.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/kwayrefine.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/kwayrefine.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/link.txt: -------------------------------------------------------------------------------- 1 | /usr/bin/cc -fPIC -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE -O3 -shared -Wl,-soname,libmetis.so -o libmetis.so CMakeFiles/metis.dir/__/GKlib/b64.c.o CMakeFiles/metis.dir/__/GKlib/blas.c.o CMakeFiles/metis.dir/__/GKlib/csr.c.o CMakeFiles/metis.dir/__/GKlib/error.c.o CMakeFiles/metis.dir/__/GKlib/evaluate.c.o CMakeFiles/metis.dir/__/GKlib/fkvkselect.c.o CMakeFiles/metis.dir/__/GKlib/fs.c.o CMakeFiles/metis.dir/__/GKlib/getopt.c.o CMakeFiles/metis.dir/__/GKlib/gkregex.c.o CMakeFiles/metis.dir/__/GKlib/graph.c.o CMakeFiles/metis.dir/__/GKlib/htable.c.o CMakeFiles/metis.dir/__/GKlib/io.c.o CMakeFiles/metis.dir/__/GKlib/itemsets.c.o CMakeFiles/metis.dir/__/GKlib/mcore.c.o CMakeFiles/metis.dir/__/GKlib/memory.c.o CMakeFiles/metis.dir/__/GKlib/omp.c.o CMakeFiles/metis.dir/__/GKlib/pdb.c.o CMakeFiles/metis.dir/__/GKlib/pqueue.c.o CMakeFiles/metis.dir/__/GKlib/random.c.o CMakeFiles/metis.dir/__/GKlib/rw.c.o CMakeFiles/metis.dir/__/GKlib/seq.c.o CMakeFiles/metis.dir/__/GKlib/sort.c.o CMakeFiles/metis.dir/__/GKlib/string.c.o CMakeFiles/metis.dir/__/GKlib/timers.c.o CMakeFiles/metis.dir/__/GKlib/tokenizer.c.o CMakeFiles/metis.dir/__/GKlib/util.c.o CMakeFiles/metis.dir/auxapi.c.o CMakeFiles/metis.dir/balance.c.o CMakeFiles/metis.dir/bucketsort.c.o CMakeFiles/metis.dir/checkgraph.c.o CMakeFiles/metis.dir/coarsen.c.o CMakeFiles/metis.dir/compress.c.o CMakeFiles/metis.dir/contig.c.o CMakeFiles/metis.dir/debug.c.o CMakeFiles/metis.dir/fm.c.o CMakeFiles/metis.dir/fortran.c.o CMakeFiles/metis.dir/frename.c.o CMakeFiles/metis.dir/gklib.c.o CMakeFiles/metis.dir/graph.c.o CMakeFiles/metis.dir/initpart.c.o CMakeFiles/metis.dir/kmetis.c.o CMakeFiles/metis.dir/kwayfm.c.o CMakeFiles/metis.dir/kwayrefine.c.o CMakeFiles/metis.dir/mcutil.c.o CMakeFiles/metis.dir/mesh.c.o CMakeFiles/metis.dir/meshpart.c.o CMakeFiles/metis.dir/minconn.c.o CMakeFiles/metis.dir/mincover.c.o CMakeFiles/metis.dir/mmd.c.o CMakeFiles/metis.dir/ometis.c.o CMakeFiles/metis.dir/options.c.o CMakeFiles/metis.dir/parmetis.c.o CMakeFiles/metis.dir/pmetis.c.o CMakeFiles/metis.dir/refine.c.o CMakeFiles/metis.dir/separator.c.o CMakeFiles/metis.dir/sfm.c.o CMakeFiles/metis.dir/srefine.c.o CMakeFiles/metis.dir/stat.c.o CMakeFiles/metis.dir/timing.c.o CMakeFiles/metis.dir/util.c.o CMakeFiles/metis.dir/wspace.c.o -lm 2 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/mcutil.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/mcutil.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/mesh.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/mesh.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/meshpart.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/meshpart.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/minconn.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/minconn.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/mincover.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/mincover.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/mmd.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/mmd.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/ometis.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/ometis.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/options.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/options.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/parmetis.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/parmetis.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/pmetis.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/pmetis.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/progress.make: -------------------------------------------------------------------------------- 1 | CMAKE_PROGRESS_1 = 17 2 | CMAKE_PROGRESS_2 = 18 3 | CMAKE_PROGRESS_3 = 19 4 | CMAKE_PROGRESS_4 = 20 5 | CMAKE_PROGRESS_5 = 21 6 | CMAKE_PROGRESS_6 = 22 7 | CMAKE_PROGRESS_7 = 23 8 | CMAKE_PROGRESS_8 = 24 9 | CMAKE_PROGRESS_9 = 25 10 | CMAKE_PROGRESS_10 = 26 11 | CMAKE_PROGRESS_11 = 27 12 | CMAKE_PROGRESS_12 = 28 13 | CMAKE_PROGRESS_13 = 29 14 | CMAKE_PROGRESS_14 = 30 15 | CMAKE_PROGRESS_15 = 31 16 | CMAKE_PROGRESS_16 = 32 17 | CMAKE_PROGRESS_17 = 33 18 | CMAKE_PROGRESS_18 = 34 19 | CMAKE_PROGRESS_19 = 35 20 | CMAKE_PROGRESS_20 = 36 21 | CMAKE_PROGRESS_21 = 37 22 | CMAKE_PROGRESS_22 = 38 23 | CMAKE_PROGRESS_23 = 39 24 | CMAKE_PROGRESS_24 = 40 25 | CMAKE_PROGRESS_25 = 41 26 | CMAKE_PROGRESS_26 = 42 27 | CMAKE_PROGRESS_27 = 43 28 | CMAKE_PROGRESS_28 = 44 29 | CMAKE_PROGRESS_29 = 45 30 | CMAKE_PROGRESS_30 = 46 31 | CMAKE_PROGRESS_31 = 47 32 | CMAKE_PROGRESS_32 = 48 33 | CMAKE_PROGRESS_33 = 49 34 | CMAKE_PROGRESS_34 = 50 35 | CMAKE_PROGRESS_35 = 51 36 | CMAKE_PROGRESS_36 = 52 37 | CMAKE_PROGRESS_37 = 53 38 | CMAKE_PROGRESS_38 = 54 39 | CMAKE_PROGRESS_39 = 55 40 | CMAKE_PROGRESS_40 = 56 41 | CMAKE_PROGRESS_41 = 57 42 | CMAKE_PROGRESS_42 = 58 43 | CMAKE_PROGRESS_43 = 59 44 | CMAKE_PROGRESS_44 = 60 45 | CMAKE_PROGRESS_45 = 61 46 | CMAKE_PROGRESS_46 = 62 47 | CMAKE_PROGRESS_47 = 63 48 | CMAKE_PROGRESS_48 = 64 49 | CMAKE_PROGRESS_49 = 65 50 | CMAKE_PROGRESS_50 = 66 51 | CMAKE_PROGRESS_51 = 67 52 | CMAKE_PROGRESS_52 = 68 53 | CMAKE_PROGRESS_53 = 69 54 | CMAKE_PROGRESS_54 = 70 55 | CMAKE_PROGRESS_55 = 71 56 | CMAKE_PROGRESS_56 = 72 57 | CMAKE_PROGRESS_57 = 73 58 | CMAKE_PROGRESS_58 = 74 59 | CMAKE_PROGRESS_59 = 75 60 | CMAKE_PROGRESS_60 = 76 61 | CMAKE_PROGRESS_61 = 77 62 | CMAKE_PROGRESS_62 = 78 63 | 64 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/refine.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/refine.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/separator.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/separator.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/sfm.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/sfm.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/srefine.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/srefine.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/stat.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/stat.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/timing.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/timing.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/util.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/util.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/wspace.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/wspace.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/progress.marks: -------------------------------------------------------------------------------- 1 | 62 2 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/cmake_install.cmake: -------------------------------------------------------------------------------- 1 | # Install script for directory: /data3/DRILL/metis/metis-5.1.0/libmetis 2 | 3 | # Set the install prefix 4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX) 5 | set(CMAKE_INSTALL_PREFIX "/usr/local") 6 | endif() 7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 8 | 9 | # Set the install configuration name. 10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 11 | if(BUILD_TYPE) 12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" 13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") 14 | else() 15 | set(CMAKE_INSTALL_CONFIG_NAME "") 16 | endif() 17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") 18 | endif() 19 | 20 | # Set the component getting installed. 21 | if(NOT CMAKE_INSTALL_COMPONENT) 22 | if(COMPONENT) 23 | message(STATUS "Install component: \"${COMPONENT}\"") 24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") 25 | else() 26 | set(CMAKE_INSTALL_COMPONENT) 27 | endif() 28 | endif() 29 | 30 | # Install shared libraries without execute permission? 31 | if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) 32 | set(CMAKE_INSTALL_SO_NO_EXE "1") 33 | endif() 34 | 35 | # Is this installation the result of a crosscompile? 36 | if(NOT DEFINED CMAKE_CROSSCOMPILING) 37 | set(CMAKE_CROSSCOMPILING "FALSE") 38 | endif() 39 | 40 | if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) 41 | if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmetis.so" AND 42 | NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmetis.so") 43 | file(RPATH_CHECK 44 | FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmetis.so" 45 | RPATH "") 46 | endif() 47 | file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE SHARED_LIBRARY FILES "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis/libmetis.so") 48 | if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmetis.so" AND 49 | NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmetis.so") 50 | if(CMAKE_INSTALL_DO_STRIP) 51 | execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libmetis.so") 52 | endif() 53 | endif() 54 | endif() 55 | 56 | if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) 57 | endif() 58 | 59 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/libmetis/libmetis.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/libmetis/libmetis.so -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/CMakeDirectoryInformation.cmake: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.16 3 | 4 | # Relative path conversion top directories. 5 | set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/data3/DRILL/metis/metis-5.1.0") 6 | set(CMAKE_RELATIVE_PATH_TOP_BINARY "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64") 7 | 8 | # Force unix paths in dependencies. 9 | set(CMAKE_FORCE_UNIX_PATHS 1) 10 | 11 | 12 | # The C and CXX include file regular expressions for this directory. 13 | set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") 14 | set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") 15 | set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) 16 | set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) 17 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/cmpfillin.dir/DependInfo.cmake: -------------------------------------------------------------------------------- 1 | # The set of languages for which implicit dependencies are needed: 2 | set(CMAKE_DEPENDS_LANGUAGES 3 | "C" 4 | ) 5 | # The set of files for implicit dependencies of each language: 6 | set(CMAKE_DEPENDS_CHECK_C 7 | "/data3/DRILL/metis/metis-5.1.0/programs/cmpfillin.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/cmpfillin.dir/cmpfillin.c.o" 8 | "/data3/DRILL/metis/metis-5.1.0/programs/io.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/cmpfillin.dir/io.c.o" 9 | "/data3/DRILL/metis/metis-5.1.0/programs/smbfactor.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/cmpfillin.dir/smbfactor.c.o" 10 | ) 11 | set(CMAKE_C_COMPILER_ID "GNU") 12 | 13 | # Preprocessor definitions for this target. 14 | set(CMAKE_TARGET_DEFINITIONS_C 15 | "SVNINFO=\"\"" 16 | ) 17 | 18 | # The include file search paths: 19 | set(CMAKE_C_TARGET_INCLUDE_PATH 20 | "../../GKlib" 21 | "../../include" 22 | "../../programs/../libmetis" 23 | ) 24 | 25 | # Targets to which this target links. 26 | set(CMAKE_TARGET_LINKED_INFO_FILES 27 | "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/DependInfo.cmake" 28 | ) 29 | 30 | # Fortran module output directory. 31 | set(CMAKE_Fortran_TARGET_MODULE_DIR "") 32 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/cmpfillin.dir/cmake_clean.cmake: -------------------------------------------------------------------------------- 1 | file(REMOVE_RECURSE 2 | "CMakeFiles/cmpfillin.dir/cmpfillin.c.o" 3 | "CMakeFiles/cmpfillin.dir/io.c.o" 4 | "CMakeFiles/cmpfillin.dir/smbfactor.c.o" 5 | "cmpfillin" 6 | "cmpfillin.pdb" 7 | ) 8 | 9 | # Per-language clean rules from dependency scanning. 10 | foreach(lang C) 11 | include(CMakeFiles/cmpfillin.dir/cmake_clean_${lang}.cmake OPTIONAL) 12 | endforeach() 13 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/cmpfillin.dir/cmpfillin.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/cmpfillin.dir/cmpfillin.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/cmpfillin.dir/flags.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.16 3 | 4 | # compile C with /usr/bin/cc 5 | C_FLAGS = -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE -O3 6 | 7 | C_DEFINES = -DSVNINFO=\"\" 8 | 9 | C_INCLUDES = -I/data3/DRILL/metis/metis-5.1.0/GKlib -I/data3/DRILL/metis/metis-5.1.0/include -I/data3/DRILL/metis/metis-5.1.0/programs/../libmetis 10 | 11 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/cmpfillin.dir/io.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/cmpfillin.dir/io.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/cmpfillin.dir/link.txt: -------------------------------------------------------------------------------- 1 | /usr/bin/cc -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE -O3 -rdynamic CMakeFiles/cmpfillin.dir/cmpfillin.c.o CMakeFiles/cmpfillin.dir/io.c.o CMakeFiles/cmpfillin.dir/smbfactor.c.o -o cmpfillin -L/home/karypis/local/lib -Wl,-rpath,/home/karypis/local/lib:/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis: ../libmetis/libmetis.so -lm 2 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/cmpfillin.dir/progress.make: -------------------------------------------------------------------------------- 1 | CMAKE_PROGRESS_1 = 1 2 | CMAKE_PROGRESS_2 = 2 3 | CMAKE_PROGRESS_3 = 3 4 | CMAKE_PROGRESS_4 = 4 5 | 6 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/cmpfillin.dir/smbfactor.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/cmpfillin.dir/smbfactor.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir/DependInfo.cmake: -------------------------------------------------------------------------------- 1 | # The set of languages for which implicit dependencies are needed: 2 | set(CMAKE_DEPENDS_LANGUAGES 3 | "C" 4 | ) 5 | # The set of files for implicit dependencies of each language: 6 | set(CMAKE_DEPENDS_CHECK_C 7 | "/data3/DRILL/metis/metis-5.1.0/programs/cmdline_gpmetis.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir/cmdline_gpmetis.c.o" 8 | "/data3/DRILL/metis/metis-5.1.0/programs/gpmetis.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir/gpmetis.c.o" 9 | "/data3/DRILL/metis/metis-5.1.0/programs/io.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir/io.c.o" 10 | "/data3/DRILL/metis/metis-5.1.0/programs/stat.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir/stat.c.o" 11 | ) 12 | set(CMAKE_C_COMPILER_ID "GNU") 13 | 14 | # Preprocessor definitions for this target. 15 | set(CMAKE_TARGET_DEFINITIONS_C 16 | "SVNINFO=\"\"" 17 | ) 18 | 19 | # The include file search paths: 20 | set(CMAKE_C_TARGET_INCLUDE_PATH 21 | "../../GKlib" 22 | "../../include" 23 | "../../programs/../libmetis" 24 | ) 25 | 26 | # Targets to which this target links. 27 | set(CMAKE_TARGET_LINKED_INFO_FILES 28 | "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/DependInfo.cmake" 29 | ) 30 | 31 | # Fortran module output directory. 32 | set(CMAKE_Fortran_TARGET_MODULE_DIR "") 33 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir/cmake_clean.cmake: -------------------------------------------------------------------------------- 1 | file(REMOVE_RECURSE 2 | "CMakeFiles/gpmetis.dir/cmdline_gpmetis.c.o" 3 | "CMakeFiles/gpmetis.dir/gpmetis.c.o" 4 | "CMakeFiles/gpmetis.dir/io.c.o" 5 | "CMakeFiles/gpmetis.dir/stat.c.o" 6 | "gpmetis" 7 | "gpmetis.pdb" 8 | ) 9 | 10 | # Per-language clean rules from dependency scanning. 11 | foreach(lang C) 12 | include(CMakeFiles/gpmetis.dir/cmake_clean_${lang}.cmake OPTIONAL) 13 | endforeach() 14 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir/cmdline_gpmetis.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir/cmdline_gpmetis.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir/flags.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.16 3 | 4 | # compile C with /usr/bin/cc 5 | C_FLAGS = -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE -O3 6 | 7 | C_DEFINES = -DSVNINFO=\"\" 8 | 9 | C_INCLUDES = -I/data3/DRILL/metis/metis-5.1.0/GKlib -I/data3/DRILL/metis/metis-5.1.0/include -I/data3/DRILL/metis/metis-5.1.0/programs/../libmetis 10 | 11 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir/gpmetis.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir/gpmetis.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir/io.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir/io.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir/link.txt: -------------------------------------------------------------------------------- 1 | /usr/bin/cc -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE -O3 -rdynamic CMakeFiles/gpmetis.dir/gpmetis.c.o CMakeFiles/gpmetis.dir/cmdline_gpmetis.c.o CMakeFiles/gpmetis.dir/io.c.o CMakeFiles/gpmetis.dir/stat.c.o -o gpmetis -L/home/karypis/local/lib -Wl,-rpath,/home/karypis/local/lib:/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis: ../libmetis/libmetis.so -lm 2 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir/progress.make: -------------------------------------------------------------------------------- 1 | CMAKE_PROGRESS_1 = 5 2 | CMAKE_PROGRESS_2 = 6 3 | CMAKE_PROGRESS_3 = 7 4 | CMAKE_PROGRESS_4 = 8 5 | CMAKE_PROGRESS_5 = 9 6 | 7 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir/stat.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/gpmetis.dir/stat.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/graphchk.dir/DependInfo.cmake: -------------------------------------------------------------------------------- 1 | # The set of languages for which implicit dependencies are needed: 2 | set(CMAKE_DEPENDS_LANGUAGES 3 | "C" 4 | ) 5 | # The set of files for implicit dependencies of each language: 6 | set(CMAKE_DEPENDS_CHECK_C 7 | "/data3/DRILL/metis/metis-5.1.0/programs/graphchk.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/graphchk.dir/graphchk.c.o" 8 | "/data3/DRILL/metis/metis-5.1.0/programs/io.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/graphchk.dir/io.c.o" 9 | ) 10 | set(CMAKE_C_COMPILER_ID "GNU") 11 | 12 | # Preprocessor definitions for this target. 13 | set(CMAKE_TARGET_DEFINITIONS_C 14 | "SVNINFO=\"\"" 15 | ) 16 | 17 | # The include file search paths: 18 | set(CMAKE_C_TARGET_INCLUDE_PATH 19 | "../../GKlib" 20 | "../../include" 21 | "../../programs/../libmetis" 22 | ) 23 | 24 | # Targets to which this target links. 25 | set(CMAKE_TARGET_LINKED_INFO_FILES 26 | "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/DependInfo.cmake" 27 | ) 28 | 29 | # Fortran module output directory. 30 | set(CMAKE_Fortran_TARGET_MODULE_DIR "") 31 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/graphchk.dir/cmake_clean.cmake: -------------------------------------------------------------------------------- 1 | file(REMOVE_RECURSE 2 | "CMakeFiles/graphchk.dir/graphchk.c.o" 3 | "CMakeFiles/graphchk.dir/io.c.o" 4 | "graphchk" 5 | "graphchk.pdb" 6 | ) 7 | 8 | # Per-language clean rules from dependency scanning. 9 | foreach(lang C) 10 | include(CMakeFiles/graphchk.dir/cmake_clean_${lang}.cmake OPTIONAL) 11 | endforeach() 12 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/graphchk.dir/depend.internal: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.16 3 | 4 | programs/CMakeFiles/graphchk.dir/graphchk.c.o 5 | ../../GKlib/GKlib.h 6 | ../../GKlib/gk_arch.h 7 | ../../GKlib/gk_defs.h 8 | ../../GKlib/gk_externs.h 9 | ../../GKlib/gk_getopt.h 10 | ../../GKlib/gk_macros.h 11 | ../../GKlib/gk_mkblas.h 12 | ../../GKlib/gk_mkmemory.h 13 | ../../GKlib/gk_mkpqueue.h 14 | ../../GKlib/gk_mkpqueue2.h 15 | ../../GKlib/gk_mkrandom.h 16 | ../../GKlib/gk_mksort.h 17 | ../../GKlib/gk_mkutils.h 18 | ../../GKlib/gk_proto.h 19 | ../../GKlib/gk_struct.h 20 | ../../GKlib/gk_types.h 21 | ../../GKlib/gkregex.h 22 | ../../GKlib/ms_inttypes.h 23 | ../../GKlib/ms_stat.h 24 | ../../GKlib/ms_stdint.h 25 | ../../include/metis.h 26 | /data3/DRILL/metis/metis-5.1.0/libmetis/defs.h 27 | /data3/DRILL/metis/metis-5.1.0/libmetis/gklib_defs.h 28 | /data3/DRILL/metis/metis-5.1.0/libmetis/gklib_rename.h 29 | /data3/DRILL/metis/metis-5.1.0/libmetis/macros.h 30 | /data3/DRILL/metis/metis-5.1.0/libmetis/proto.h 31 | /data3/DRILL/metis/metis-5.1.0/libmetis/rename.h 32 | /data3/DRILL/metis/metis-5.1.0/libmetis/struct.h 33 | /data3/DRILL/metis/metis-5.1.0/programs/defs.h 34 | /data3/DRILL/metis/metis-5.1.0/programs/graphchk.c 35 | /data3/DRILL/metis/metis-5.1.0/programs/metisbin.h 36 | /data3/DRILL/metis/metis-5.1.0/programs/proto.h 37 | /data3/DRILL/metis/metis-5.1.0/programs/struct.h 38 | programs/CMakeFiles/graphchk.dir/io.c.o 39 | ../../GKlib/GKlib.h 40 | ../../GKlib/gk_arch.h 41 | ../../GKlib/gk_defs.h 42 | ../../GKlib/gk_externs.h 43 | ../../GKlib/gk_getopt.h 44 | ../../GKlib/gk_macros.h 45 | ../../GKlib/gk_mkblas.h 46 | ../../GKlib/gk_mkmemory.h 47 | ../../GKlib/gk_mkpqueue.h 48 | ../../GKlib/gk_mkpqueue2.h 49 | ../../GKlib/gk_mkrandom.h 50 | ../../GKlib/gk_mksort.h 51 | ../../GKlib/gk_mkutils.h 52 | ../../GKlib/gk_proto.h 53 | ../../GKlib/gk_struct.h 54 | ../../GKlib/gk_types.h 55 | ../../GKlib/gkregex.h 56 | ../../GKlib/ms_inttypes.h 57 | ../../GKlib/ms_stat.h 58 | ../../GKlib/ms_stdint.h 59 | ../../include/metis.h 60 | /data3/DRILL/metis/metis-5.1.0/libmetis/defs.h 61 | /data3/DRILL/metis/metis-5.1.0/libmetis/gklib_defs.h 62 | /data3/DRILL/metis/metis-5.1.0/libmetis/gklib_rename.h 63 | /data3/DRILL/metis/metis-5.1.0/libmetis/macros.h 64 | /data3/DRILL/metis/metis-5.1.0/libmetis/proto.h 65 | /data3/DRILL/metis/metis-5.1.0/libmetis/rename.h 66 | /data3/DRILL/metis/metis-5.1.0/libmetis/struct.h 67 | /data3/DRILL/metis/metis-5.1.0/programs/defs.h 68 | /data3/DRILL/metis/metis-5.1.0/programs/io.c 69 | /data3/DRILL/metis/metis-5.1.0/programs/metisbin.h 70 | /data3/DRILL/metis/metis-5.1.0/programs/proto.h 71 | /data3/DRILL/metis/metis-5.1.0/programs/struct.h 72 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/graphchk.dir/flags.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.16 3 | 4 | # compile C with /usr/bin/cc 5 | C_FLAGS = -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE -O3 6 | 7 | C_DEFINES = -DSVNINFO=\"\" 8 | 9 | C_INCLUDES = -I/data3/DRILL/metis/metis-5.1.0/GKlib -I/data3/DRILL/metis/metis-5.1.0/include -I/data3/DRILL/metis/metis-5.1.0/programs/../libmetis 10 | 11 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/graphchk.dir/graphchk.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/graphchk.dir/graphchk.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/graphchk.dir/io.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/graphchk.dir/io.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/graphchk.dir/link.txt: -------------------------------------------------------------------------------- 1 | /usr/bin/cc -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE -O3 -rdynamic CMakeFiles/graphchk.dir/graphchk.c.o CMakeFiles/graphchk.dir/io.c.o -o graphchk -L/home/karypis/local/lib -Wl,-rpath,/home/karypis/local/lib:/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis: ../libmetis/libmetis.so -lm 2 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/graphchk.dir/progress.make: -------------------------------------------------------------------------------- 1 | CMAKE_PROGRESS_1 = 10 2 | CMAKE_PROGRESS_2 = 11 3 | CMAKE_PROGRESS_3 = 12 4 | 5 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/m2gmetis.dir/DependInfo.cmake: -------------------------------------------------------------------------------- 1 | # The set of languages for which implicit dependencies are needed: 2 | set(CMAKE_DEPENDS_LANGUAGES 3 | "C" 4 | ) 5 | # The set of files for implicit dependencies of each language: 6 | set(CMAKE_DEPENDS_CHECK_C 7 | "/data3/DRILL/metis/metis-5.1.0/programs/cmdline_m2gmetis.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/m2gmetis.dir/cmdline_m2gmetis.c.o" 8 | "/data3/DRILL/metis/metis-5.1.0/programs/io.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/m2gmetis.dir/io.c.o" 9 | "/data3/DRILL/metis/metis-5.1.0/programs/m2gmetis.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/m2gmetis.dir/m2gmetis.c.o" 10 | ) 11 | set(CMAKE_C_COMPILER_ID "GNU") 12 | 13 | # Preprocessor definitions for this target. 14 | set(CMAKE_TARGET_DEFINITIONS_C 15 | "SVNINFO=\"\"" 16 | ) 17 | 18 | # The include file search paths: 19 | set(CMAKE_C_TARGET_INCLUDE_PATH 20 | "../../GKlib" 21 | "../../include" 22 | "../../programs/../libmetis" 23 | ) 24 | 25 | # Targets to which this target links. 26 | set(CMAKE_TARGET_LINKED_INFO_FILES 27 | "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/DependInfo.cmake" 28 | ) 29 | 30 | # Fortran module output directory. 31 | set(CMAKE_Fortran_TARGET_MODULE_DIR "") 32 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/m2gmetis.dir/cmake_clean.cmake: -------------------------------------------------------------------------------- 1 | file(REMOVE_RECURSE 2 | "CMakeFiles/m2gmetis.dir/cmdline_m2gmetis.c.o" 3 | "CMakeFiles/m2gmetis.dir/io.c.o" 4 | "CMakeFiles/m2gmetis.dir/m2gmetis.c.o" 5 | "m2gmetis" 6 | "m2gmetis.pdb" 7 | ) 8 | 9 | # Per-language clean rules from dependency scanning. 10 | foreach(lang C) 11 | include(CMakeFiles/m2gmetis.dir/cmake_clean_${lang}.cmake OPTIONAL) 12 | endforeach() 13 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/m2gmetis.dir/cmdline_m2gmetis.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/m2gmetis.dir/cmdline_m2gmetis.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/m2gmetis.dir/flags.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.16 3 | 4 | # compile C with /usr/bin/cc 5 | C_FLAGS = -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE -O3 6 | 7 | C_DEFINES = -DSVNINFO=\"\" 8 | 9 | C_INCLUDES = -I/data3/DRILL/metis/metis-5.1.0/GKlib -I/data3/DRILL/metis/metis-5.1.0/include -I/data3/DRILL/metis/metis-5.1.0/programs/../libmetis 10 | 11 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/m2gmetis.dir/io.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/m2gmetis.dir/io.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/m2gmetis.dir/link.txt: -------------------------------------------------------------------------------- 1 | /usr/bin/cc -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE -O3 -rdynamic CMakeFiles/m2gmetis.dir/m2gmetis.c.o CMakeFiles/m2gmetis.dir/cmdline_m2gmetis.c.o CMakeFiles/m2gmetis.dir/io.c.o -o m2gmetis -L/home/karypis/local/lib -Wl,-rpath,/home/karypis/local/lib:/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis: ../libmetis/libmetis.so -lm 2 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/m2gmetis.dir/m2gmetis.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/m2gmetis.dir/m2gmetis.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/m2gmetis.dir/progress.make: -------------------------------------------------------------------------------- 1 | CMAKE_PROGRESS_1 = 13 2 | CMAKE_PROGRESS_2 = 14 3 | CMAKE_PROGRESS_3 = 15 4 | CMAKE_PROGRESS_4 = 16 5 | 6 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir/DependInfo.cmake: -------------------------------------------------------------------------------- 1 | # The set of languages for which implicit dependencies are needed: 2 | set(CMAKE_DEPENDS_LANGUAGES 3 | "C" 4 | ) 5 | # The set of files for implicit dependencies of each language: 6 | set(CMAKE_DEPENDS_CHECK_C 7 | "/data3/DRILL/metis/metis-5.1.0/programs/cmdline_mpmetis.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir/cmdline_mpmetis.c.o" 8 | "/data3/DRILL/metis/metis-5.1.0/programs/io.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir/io.c.o" 9 | "/data3/DRILL/metis/metis-5.1.0/programs/mpmetis.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir/mpmetis.c.o" 10 | "/data3/DRILL/metis/metis-5.1.0/programs/stat.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir/stat.c.o" 11 | ) 12 | set(CMAKE_C_COMPILER_ID "GNU") 13 | 14 | # Preprocessor definitions for this target. 15 | set(CMAKE_TARGET_DEFINITIONS_C 16 | "SVNINFO=\"\"" 17 | ) 18 | 19 | # The include file search paths: 20 | set(CMAKE_C_TARGET_INCLUDE_PATH 21 | "../../GKlib" 22 | "../../include" 23 | "../../programs/../libmetis" 24 | ) 25 | 26 | # Targets to which this target links. 27 | set(CMAKE_TARGET_LINKED_INFO_FILES 28 | "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/DependInfo.cmake" 29 | ) 30 | 31 | # Fortran module output directory. 32 | set(CMAKE_Fortran_TARGET_MODULE_DIR "") 33 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir/cmake_clean.cmake: -------------------------------------------------------------------------------- 1 | file(REMOVE_RECURSE 2 | "CMakeFiles/mpmetis.dir/cmdline_mpmetis.c.o" 3 | "CMakeFiles/mpmetis.dir/io.c.o" 4 | "CMakeFiles/mpmetis.dir/mpmetis.c.o" 5 | "CMakeFiles/mpmetis.dir/stat.c.o" 6 | "mpmetis" 7 | "mpmetis.pdb" 8 | ) 9 | 10 | # Per-language clean rules from dependency scanning. 11 | foreach(lang C) 12 | include(CMakeFiles/mpmetis.dir/cmake_clean_${lang}.cmake OPTIONAL) 13 | endforeach() 14 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir/cmdline_mpmetis.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir/cmdline_mpmetis.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir/flags.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.16 3 | 4 | # compile C with /usr/bin/cc 5 | C_FLAGS = -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE -O3 6 | 7 | C_DEFINES = -DSVNINFO=\"\" 8 | 9 | C_INCLUDES = -I/data3/DRILL/metis/metis-5.1.0/GKlib -I/data3/DRILL/metis/metis-5.1.0/include -I/data3/DRILL/metis/metis-5.1.0/programs/../libmetis 10 | 11 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir/io.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir/io.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir/link.txt: -------------------------------------------------------------------------------- 1 | /usr/bin/cc -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE -O3 -rdynamic CMakeFiles/mpmetis.dir/mpmetis.c.o CMakeFiles/mpmetis.dir/cmdline_mpmetis.c.o CMakeFiles/mpmetis.dir/io.c.o CMakeFiles/mpmetis.dir/stat.c.o -o mpmetis -L/home/karypis/local/lib -Wl,-rpath,/home/karypis/local/lib:/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis: ../libmetis/libmetis.so -lm 2 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir/mpmetis.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir/mpmetis.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir/progress.make: -------------------------------------------------------------------------------- 1 | CMAKE_PROGRESS_1 = 79 2 | CMAKE_PROGRESS_2 = 80 3 | CMAKE_PROGRESS_3 = 81 4 | CMAKE_PROGRESS_4 = 82 5 | CMAKE_PROGRESS_5 = 83 6 | 7 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir/stat.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/mpmetis.dir/stat.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir/DependInfo.cmake: -------------------------------------------------------------------------------- 1 | # The set of languages for which implicit dependencies are needed: 2 | set(CMAKE_DEPENDS_LANGUAGES 3 | "C" 4 | ) 5 | # The set of files for implicit dependencies of each language: 6 | set(CMAKE_DEPENDS_CHECK_C 7 | "/data3/DRILL/metis/metis-5.1.0/programs/cmdline_ndmetis.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir/cmdline_ndmetis.c.o" 8 | "/data3/DRILL/metis/metis-5.1.0/programs/io.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir/io.c.o" 9 | "/data3/DRILL/metis/metis-5.1.0/programs/ndmetis.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir/ndmetis.c.o" 10 | "/data3/DRILL/metis/metis-5.1.0/programs/smbfactor.c" "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir/smbfactor.c.o" 11 | ) 12 | set(CMAKE_C_COMPILER_ID "GNU") 13 | 14 | # Preprocessor definitions for this target. 15 | set(CMAKE_TARGET_DEFINITIONS_C 16 | "SVNINFO=\"\"" 17 | ) 18 | 19 | # The include file search paths: 20 | set(CMAKE_C_TARGET_INCLUDE_PATH 21 | "../../GKlib" 22 | "../../include" 23 | "../../programs/../libmetis" 24 | ) 25 | 26 | # Targets to which this target links. 27 | set(CMAKE_TARGET_LINKED_INFO_FILES 28 | "/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis/CMakeFiles/metis.dir/DependInfo.cmake" 29 | ) 30 | 31 | # Fortran module output directory. 32 | set(CMAKE_Fortran_TARGET_MODULE_DIR "") 33 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir/cmake_clean.cmake: -------------------------------------------------------------------------------- 1 | file(REMOVE_RECURSE 2 | "CMakeFiles/ndmetis.dir/cmdline_ndmetis.c.o" 3 | "CMakeFiles/ndmetis.dir/io.c.o" 4 | "CMakeFiles/ndmetis.dir/ndmetis.c.o" 5 | "CMakeFiles/ndmetis.dir/smbfactor.c.o" 6 | "ndmetis" 7 | "ndmetis.pdb" 8 | ) 9 | 10 | # Per-language clean rules from dependency scanning. 11 | foreach(lang C) 12 | include(CMakeFiles/ndmetis.dir/cmake_clean_${lang}.cmake OPTIONAL) 13 | endforeach() 14 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir/cmdline_ndmetis.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir/cmdline_ndmetis.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir/flags.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.16 3 | 4 | # compile C with /usr/bin/cc 5 | C_FLAGS = -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE -O3 6 | 7 | C_DEFINES = -DSVNINFO=\"\" 8 | 9 | C_INCLUDES = -I/data3/DRILL/metis/metis-5.1.0/GKlib -I/data3/DRILL/metis/metis-5.1.0/include -I/data3/DRILL/metis/metis-5.1.0/programs/../libmetis 10 | 11 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir/io.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir/io.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir/link.txt: -------------------------------------------------------------------------------- 1 | /usr/bin/cc -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE -O3 -rdynamic CMakeFiles/ndmetis.dir/ndmetis.c.o CMakeFiles/ndmetis.dir/cmdline_ndmetis.c.o CMakeFiles/ndmetis.dir/io.c.o CMakeFiles/ndmetis.dir/smbfactor.c.o -o ndmetis -L/home/karypis/local/lib -Wl,-rpath,/home/karypis/local/lib:/data3/DRILL/metis/metis-5.1.0/build/Linux-x86_64/libmetis: ../libmetis/libmetis.so -lm 2 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir/ndmetis.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir/ndmetis.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir/progress.make: -------------------------------------------------------------------------------- 1 | CMAKE_PROGRESS_1 = 84 2 | CMAKE_PROGRESS_2 = 85 3 | CMAKE_PROGRESS_3 = 86 4 | CMAKE_PROGRESS_4 = 87 5 | CMAKE_PROGRESS_5 = 88 6 | 7 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir/smbfactor.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/ndmetis.dir/smbfactor.c.o -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/CMakeFiles/progress.marks: -------------------------------------------------------------------------------- 1 | 88 2 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/cmpfillin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/cmpfillin -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/gpmetis: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/gpmetis -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/graphchk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/graphchk -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/m2gmetis: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/m2gmetis -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/mpmetis: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/mpmetis -------------------------------------------------------------------------------- /metis/metis-5.1.0/build/Linux-x86_64/programs/ndmetis: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/build/Linux-x86_64/programs/ndmetis -------------------------------------------------------------------------------- /metis/metis-5.1.0/graphs/README: -------------------------------------------------------------------------------- 1 | 2 | This file contains some test graphs and meshes 3 | 4 | 4elt.graph 5 | copter2.graph 6 | mdual.graph 7 | These are small to medium size graphs corresponding to 2D and 3D 8 | finite element mesh. They can be used as inputs to gpmetis and ndmetis. 9 | 10 | test.mgraph 11 | This is a very small graph with two vertex weights (multi-constraint). 12 | Can be used as input to gpmetis. 13 | 14 | metis.mesh 15 | This is a small 2D mesh (It is a triangulation of 'METIS'). 16 | Can be used as input to mpmetis and m2gmetis. 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/include/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(METIS_INSTALL) 2 | install(FILES metis.h DESTINATION include) 3 | endif() 4 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/libmetis/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Add this directory for internal users. 2 | include_directories(.) 3 | # Find sources. 4 | file(GLOB metis_sources *.c) 5 | # Build libmetis. 6 | add_library(metis ${METIS_LIBRARY_TYPE} ${GKlib_sources} ${metis_sources}) 7 | if(UNIX) 8 | target_link_libraries(metis m) 9 | endif() 10 | 11 | if(METIS_INSTALL) 12 | install(TARGETS metis 13 | LIBRARY DESTINATION lib 14 | RUNTIME DESTINATION lib 15 | ARCHIVE DESTINATION lib) 16 | endif() 17 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/libmetis/auxapi.c: -------------------------------------------------------------------------------- 1 | /** 2 | \file 3 | \brief This file contains various helper API routines for using METIS. 4 | 5 | \date Started 5/12/2011 6 | \author George 7 | \author Copyright 1997-2009, Regents of the University of Minnesota 8 | \version\verbatim $Id: auxapi.c 10409 2011-06-25 16:58:34Z karypis $ \endverbatim 9 | */ 10 | 11 | 12 | #include "metislib.h" 13 | 14 | 15 | /*************************************************************************/ 16 | /*! This function free memory that was allocated by METIS and retuned 17 | to the application. 18 | 19 | \param ptr points to the memory that was previously allocated by 20 | METIS. 21 | */ 22 | /*************************************************************************/ 23 | int METIS_Free(void *ptr) 24 | { 25 | if (ptr != NULL) free(ptr); 26 | return METIS_OK; 27 | } 28 | 29 | 30 | /*************************************************************************/ 31 | /*! This function sets the default values for the options. 32 | 33 | \param options points to an array of size at least METIS_NOPTIONS. 34 | */ 35 | /*************************************************************************/ 36 | int METIS_SetDefaultOptions(idx_t *options) 37 | { 38 | iset(METIS_NOPTIONS, -1, options); 39 | 40 | return METIS_OK; 41 | } 42 | 43 | 44 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/libmetis/bucketsort.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1997, Regents of the University of Minnesota 3 | * 4 | * bucketsort.c 5 | * 6 | * This file contains code that implement a variety of counting sorting 7 | * algorithms 8 | * 9 | * Started 7/25/97 10 | * George 11 | * 12 | */ 13 | 14 | #include "metislib.h" 15 | 16 | 17 | 18 | /************************************************************************* 19 | * This function uses simple counting sort to return a permutation array 20 | * corresponding to the sorted order. The keys are arsumed to start from 21 | * 0 and they are positive. This sorting is used during matching. 22 | **************************************************************************/ 23 | void BucketSortKeysInc(ctrl_t *ctrl, idx_t n, idx_t max, idx_t *keys, 24 | idx_t *tperm, idx_t *perm) 25 | { 26 | idx_t i, ii; 27 | idx_t *counts; 28 | 29 | WCOREPUSH; 30 | 31 | counts = iset(max+2, 0, iwspacemalloc(ctrl, max+2)); 32 | 33 | for (i=0; i 18 | 19 | #if defined(ENABLE_OPENMP) 20 | #include 21 | #endif 22 | 23 | 24 | #include 25 | #include 26 | #include 27 | 28 | #include 29 | #include 30 | #include 31 | #include 32 | 33 | 34 | #if defined(COMPILER_MSC) 35 | #if defined(rint) 36 | #undef rint 37 | #endif 38 | #define rint(x) ((idx_t)((x)+0.5)) /* MSC does not have rint() function */ 39 | #endif 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/libmetis/stdheaders.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1997, Regents of the University of Minnesota 3 | * 4 | * stdheaders.h 5 | * 6 | * This file includes all necessary header files 7 | * 8 | * Started 8/27/94 9 | * George 10 | * 11 | * $Id: stdheaders.h 5993 2009-01-07 02:09:57Z karypis $ 12 | */ 13 | 14 | #ifndef _LIBMETIS_STDHEADERS_H_ 15 | #define _LIBMETIS_STDHEADERS_H_ 16 | 17 | #include 18 | #ifdef __STDC__ 19 | #include 20 | #else 21 | #include 22 | #endif 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/libmetis/timing.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1997, Regents of the University of Minnesota 3 | * 4 | * timing.c 5 | * 6 | * This file contains routines that deal with timing Metis 7 | * 8 | * Started 7/24/97 9 | * George 10 | * 11 | * $Id: timing.c 13936 2013-03-30 03:59:09Z karypis $ 12 | * 13 | */ 14 | 15 | #include "metislib.h" 16 | 17 | 18 | /************************************************************************* 19 | * This function clears the timers 20 | **************************************************************************/ 21 | void InitTimers(ctrl_t *ctrl) 22 | { 23 | gk_clearcputimer(ctrl->TotalTmr); 24 | gk_clearcputimer(ctrl->InitPartTmr); 25 | gk_clearcputimer(ctrl->MatchTmr); 26 | gk_clearcputimer(ctrl->ContractTmr); 27 | gk_clearcputimer(ctrl->CoarsenTmr); 28 | gk_clearcputimer(ctrl->UncoarsenTmr); 29 | gk_clearcputimer(ctrl->RefTmr); 30 | gk_clearcputimer(ctrl->ProjectTmr); 31 | gk_clearcputimer(ctrl->SplitTmr); 32 | gk_clearcputimer(ctrl->Aux1Tmr); 33 | gk_clearcputimer(ctrl->Aux2Tmr); 34 | gk_clearcputimer(ctrl->Aux3Tmr); 35 | } 36 | 37 | 38 | 39 | /************************************************************************* 40 | * This function prints the various timers 41 | **************************************************************************/ 42 | void PrintTimers(ctrl_t *ctrl) 43 | { 44 | printf("\nTiming Information -------------------------------------------------"); 45 | printf("\n Multilevel: \t\t %7.3"PRREAL"", gk_getcputimer(ctrl->TotalTmr)); 46 | printf("\n Coarsening: \t\t %7.3"PRREAL"", gk_getcputimer(ctrl->CoarsenTmr)); 47 | printf("\n Matching: \t\t\t %7.3"PRREAL"", gk_getcputimer(ctrl->MatchTmr)); 48 | printf("\n Contract: \t\t\t %7.3"PRREAL"", gk_getcputimer(ctrl->ContractTmr)); 49 | printf("\n Initial Partition: \t %7.3"PRREAL"", gk_getcputimer(ctrl->InitPartTmr)); 50 | printf("\n Uncoarsening: \t\t %7.3"PRREAL"", gk_getcputimer(ctrl->UncoarsenTmr)); 51 | printf("\n Refinement: \t\t\t %7.3"PRREAL"", gk_getcputimer(ctrl->RefTmr)); 52 | printf("\n Projection: \t\t\t %7.3"PRREAL"", gk_getcputimer(ctrl->ProjectTmr)); 53 | printf("\n Splitting: \t\t %7.3"PRREAL"", gk_getcputimer(ctrl->SplitTmr)); 54 | /* 55 | printf("\n Aux1Tmr: \t\t %7.3"PRREAL"", gk_getcputimer(ctrl->Aux1Tmr)); 56 | printf("\n Aux2Tmr: \t\t %7.3"PRREAL"", gk_getcputimer(ctrl->Aux2Tmr)); 57 | printf("\n Aux3Tmr: \t\t %7.3"PRREAL"", gk_getcputimer(ctrl->Aux3Tmr)); 58 | */ 59 | printf("\n********************************************************************\n"); 60 | } 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/manual/manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Linestro/GRACE/62b46c654349dcb1822a159b3e325e1602153a60/metis/metis-5.1.0/manual/manual.pdf -------------------------------------------------------------------------------- /metis/metis-5.1.0/metis_test.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from matplotlib import pyplot as plt 3 | from scipy.sparse import csr_matrix, lil_matrix, diags 4 | # from sklearn.cluster import SpectralClustering 5 | import networkx as nx 6 | import argparse 7 | import math 8 | import metis 9 | import random 10 | parser = argparse.ArgumentParser() 11 | 12 | parser.add_argument('-i', required=True) 13 | parser.add_argument('-c', required=True) 14 | parser.add_argument('-b', required=True) 15 | 16 | args = parser.parse_args() 17 | 18 | in_nodes = [] 19 | out_nodes = [] 20 | weights = [] 21 | with open(args.i) as f: 22 | for ln in f.readlines(): 23 | in_nodes.append(int(ln.split(' ')[0])) 24 | out_nodes.append(int(ln.split(' ')[1])) 25 | weights.append(int(ln.split(' ')[2])) 26 | # for symmetry 27 | in_nodes.append(int(ln.split(' ')[1])) 28 | out_nodes.append(int(ln.split(' ')[0])) 29 | weights.append(int(ln.split(' ')[2])) 30 | 31 | # print(in_nodes) 32 | # print(out_nodes) 33 | # print(weights) 34 | 35 | # Create a weighted adjacency sparse matrix from the data 36 | max_nodes = max(max(in_nodes) + 1, max(out_nodes) + 1) 37 | sparse_weighted_adj = csr_matrix((weights, (in_nodes, out_nodes)), shape=(max_nodes, max_nodes)) 38 | # sparse_weighted_adj[in_nodes, out_nodes] = weights 39 | # sparse_weighted_adj[out_nodes, in_nodes] = weights 40 | # print(sparse_weighted_adj) 41 | 42 | color_offset = 0 43 | # Remove isolated nodes as they adversely affect clustering 44 | global_G = nx.Graph(sparse_weighted_adj) 45 | global_G.remove_nodes_from(list(nx.isolates(global_G))) 46 | 47 | nz_remap = {} 48 | for i in range(len(list(global_G))): 49 | nz_remap[i] = list(global_G)[i] 50 | 51 | num_clusters = int(args.c) 52 | # G = nx.from_numpy_matrix(np.int32(A)) 53 | # otherwise metis will not recognize you have a weighted graph 54 | [cost, parts] = metis.part_graph(global_G, nparts=num_clusters, recursive=True) 55 | 56 | 57 | # print(parts) 58 | 59 | cluster = [] 60 | for i in range(num_clusters): 61 | cluster.append([]) 62 | 63 | occupied = 0 64 | budget = float(args.b)*max_nodes 65 | l = list(range(len(parts))) 66 | random.shuffle(l) 67 | 68 | for i in l: 69 | old_size = len(cluster[parts[i]]) 70 | occupied -= ((2 ** old_size) - 1) 71 | occupied += ((2 ** (old_size+1)) - 1) 72 | if occupied >= budget: 73 | break 74 | cluster[parts[i]].append(nz_remap[i]) 75 | 76 | 77 | # print(occupied) 78 | # print(cluster) 79 | 80 | for i in range(len(cluster)): 81 | for j in range(len(cluster[i])): 82 | print(cluster[i][j],end=' ') 83 | if len(cluster[i]) > 0: 84 | print('') 85 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/programs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # These programs use internal metis data structures. 2 | include_directories(../libmetis) 3 | link_directories(/home/karypis/local/lib) 4 | # Build program. 5 | add_executable(gpmetis gpmetis.c cmdline_gpmetis.c io.c stat.c) 6 | add_executable(ndmetis ndmetis.c cmdline_ndmetis.c io.c smbfactor.c) 7 | add_executable(mpmetis mpmetis.c cmdline_mpmetis.c io.c stat.c) 8 | add_executable(m2gmetis m2gmetis.c cmdline_m2gmetis.c io.c) 9 | add_executable(graphchk graphchk.c io.c) 10 | add_executable(cmpfillin cmpfillin.c io.c smbfactor.c) 11 | foreach(prog gpmetis ndmetis mpmetis m2gmetis graphchk cmpfillin) 12 | target_link_libraries(${prog} metis) 13 | # target_link_libraries(${prog} metis profiler) 14 | endforeach(prog) 15 | 16 | if(METIS_INSTALL) 17 | install(TARGETS gpmetis ndmetis mpmetis m2gmetis graphchk cmpfillin 18 | RUNTIME DESTINATION bin) 19 | endif() 20 | 21 | # Try to find subversion revision. 22 | set(SVNREV "") 23 | file(TO_NATIVE_PATH ${PROJECT_SOURCE_DIR}/.svn svn_dir) 24 | if(IS_DIRECTORY ${svn_dir}) 25 | include(FindSubversion) 26 | if(Subversion_FOUND) 27 | Subversion_WC_INFO(${PROJECT_SOURCE_DIR} metis) 28 | set(SVNREV ${metis_WC_REVISION}) 29 | endif(Subversion_FOUND) 30 | endif() 31 | add_definitions(-DSVNINFO="${SVNREV}") 32 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/programs/cmpfillin.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1997, Regents of the University of Minnesota 3 | * 4 | * cmpfillin.c 5 | * 6 | * This file takes a graph and a fill-reducing ordering and computes 7 | * the fillin. 8 | * 9 | * Started 9/1/2004 10 | * George 11 | * 12 | * $Id: cmpfillin.c 9982 2011-05-25 17:18:00Z karypis $ 13 | * 14 | */ 15 | 16 | #include "metisbin.h" 17 | 18 | 19 | 20 | /************************************************************************* 21 | * Let the game begin 22 | **************************************************************************/ 23 | int main(int argc, char *argv[]) 24 | { 25 | idx_t i; 26 | idx_t *perm, *iperm; 27 | graph_t *graph; 28 | params_t params; 29 | size_t maxlnz, opc; 30 | 31 | if (argc != 3) { 32 | printf("Usage: %s nvtxs <= 0) { 39 | printf("Empty graph. Nothing to do.\n"); 40 | exit(0); 41 | } 42 | if (graph->ncon != 1) { 43 | printf("Ordering can only be applied to graphs with one constraint.\n"); 44 | exit(0); 45 | } 46 | 47 | 48 | /* Read the external iperm vector */ 49 | perm = imalloc(graph->nvtxs, "main: perm"); 50 | iperm = imalloc(graph->nvtxs, "main: iperm"); 51 | ReadPOVector(graph, argv[2], iperm); 52 | 53 | for (i=0; invtxs; i++) 54 | perm[iperm[i]] = i; 55 | 56 | printf("**********************************************************************\n"); 57 | printf("%s", METISTITLE); 58 | printf("Graph Information ---------------------------------------------------\n"); 59 | printf(" Name: %s, #Vertices: %"PRIDX", #Edges: %"PRIDX"\n\n", argv[1], 60 | graph->nvtxs, graph->nedges/2); 61 | printf("Fillin... -----------------------------------------------------------\n"); 62 | 63 | ComputeFillIn(graph, perm, iperm, &maxlnz, &opc); 64 | 65 | printf(" Nonzeros: %6.3le \tOperation Count: %6.3le\n", (double)maxlnz, (double)opc); 66 | 67 | 68 | printf("**********************************************************************\n"); 69 | 70 | FreeGraph(&graph); 71 | } 72 | 73 | 74 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/programs/defs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * defs.h 3 | * 4 | * This file contains various constant definitions 5 | * 6 | * Started 8/9/02 7 | * George 8 | * 9 | */ 10 | 11 | #define CMD_PTYPE 1 12 | #define CMD_OTYPE 2 13 | #define CMD_CTYPE 5 14 | #define CMD_ITYPE 6 15 | #define CMD_RTYPE 7 16 | 17 | #define CMD_BALANCE 10 18 | #define CMD_CONTIG 11 19 | #define CMD_MINCONN 12 20 | #define CMD_MINVOL 13 21 | 22 | #define CMD_NITER 20 23 | #define CMD_NTRIALS 21 24 | #define CMD_NSEPS 22 25 | 26 | #define CMD_TPWGTS 30 27 | #define CMD_SDIFF 31 28 | 29 | #define CMD_DEGREE 40 30 | #define CMD_COMPRESS 41 31 | 32 | #define CMD_SEED 50 33 | 34 | #define CMD_OUTPUT 100 35 | #define CMD_NOOUTPUT 101 36 | 37 | #define CMD_DBGLVL 1000 38 | #define CMD_HELP 1001 39 | 40 | 41 | 42 | 43 | /* The text labels for PTypes */ 44 | static char ptypenames[][15] = {"rb", "kway"}; 45 | 46 | /* The text labels for ObjTypes */ 47 | static char objtypenames[][15] = {"cut", "vol", "node"}; 48 | 49 | /* The text labels for CTypes */ 50 | static char ctypenames[][15] = {"rm", "shem"}; 51 | 52 | /* The text labels for RTypes */ 53 | static char rtypenames[][15] = {"fm", "greedy", "2sided", "1sided"}; 54 | 55 | /* The text labels for ITypes */ 56 | static char iptypenames[][15] = {"grow", "random", "edge", "node", "metisrb"}; 57 | 58 | /* The text labels for GTypes */ 59 | static char gtypenames[][15] = {"dual", "nodal"}; 60 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/programs/graphchk.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1997, Regents of the University of Minnesota 3 | * 4 | * graphchk.c 5 | * 6 | * This file checks the validity of a graph 7 | * 8 | * Started 8/28/94 9 | * George 10 | * 11 | * $Id: graphchk.c 9982 2011-05-25 17:18:00Z karypis $ 12 | * 13 | */ 14 | 15 | #include "metisbin.h" 16 | 17 | 18 | 19 | /*************************************************************************/ 20 | /*! Let entry point of the checker */ 21 | /*************************************************************************/ 22 | int main(int argc, char *argv[]) 23 | { 24 | graph_t *graph, *fgraph; 25 | char filename[256]; 26 | idx_t wgtflag; 27 | params_t params; 28 | 29 | if (argc != 2 && argc != 3) { 30 | printf("Usage: %s [FixedGraphFile (for storing the fixed graph)]\n", argv[0]); 31 | exit(0); 32 | } 33 | 34 | memset((void *)¶ms, 0, sizeof(params_t)); 35 | params.filename = gk_strdup(argv[1]); 36 | 37 | graph = ReadGraph(¶ms); 38 | if (graph->nvtxs == 0) { 39 | printf("Empty graph!\n"); 40 | exit(0); 41 | } 42 | 43 | printf("**********************************************************************\n"); 44 | printf("%s", METISTITLE); 45 | printf(" (HEAD: %s, Built on: %s, %s)\n", SVNINFO, __DATE__, __TIME__); 46 | printf(" size of idx_t: %zubits, real_t: %zubits, idx_t *: %zubits\n", 47 | 8*sizeof(idx_t), 8*sizeof(real_t), 8*sizeof(idx_t *)); 48 | printf("\n"); 49 | printf("Graph Information ---------------------------------------------------\n"); 50 | printf(" Name: %s, #Vertices: %"PRIDX", #Edges: %"PRIDX"\n\n", 51 | params.filename, graph->nvtxs, graph->nedges/2); 52 | printf("Checking Graph... ---------------------------------------------------\n"); 53 | 54 | if (CheckGraph(graph, 1, 1)) { 55 | printf(" The format of the graph is correct!\n"); 56 | } 57 | else { 58 | printf(" The format of the graph is incorrect!\n"); 59 | if (argc == 3) { 60 | fgraph = FixGraph(graph); 61 | WriteGraph(fgraph, argv[2]); 62 | FreeGraph(&fgraph); 63 | printf(" A corrected version was stored at %s\n", argv[2]); 64 | } 65 | } 66 | 67 | printf("\n**********************************************************************\n"); 68 | 69 | 70 | FreeGraph(&graph); 71 | gk_free((void **)¶ms.filename, ¶ms.tpwgtsfile, ¶ms.tpwgts, LTERM); 72 | } 73 | 74 | 75 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/programs/metisbin.h: -------------------------------------------------------------------------------- 1 | /* 2 | * metisbin.h 3 | * 4 | * This file contains the various header inclusions 5 | * 6 | * Started 8/9/02 7 | * George 8 | */ 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | 24 | 25 | #if defined(ENABLE_OPENMP) 26 | #include 27 | #endif 28 | 29 | 30 | #include 31 | #include "../libmetis/rename.h" 32 | #include "../libmetis/gklib_defs.h" 33 | #include "../libmetis/defs.h" 34 | #include "../libmetis/struct.h" 35 | #include "../libmetis/macros.h" 36 | #include "../libmetis/proto.h" 37 | #include "defs.h" 38 | #include "struct.h" 39 | #include "proto.h" 40 | 41 | 42 | #if defined(COMPILER_GCC) 43 | extern char* strdup (const char *); 44 | #endif 45 | 46 | #if defined(COMPILER_MSC) 47 | #if defined(rint) 48 | #undef rint 49 | #endif 50 | #define rint(x) ((idx_t)((x)+0.5)) /* MSC does not have rint() function */ 51 | #define __func__ "dummy-function" 52 | #endif 53 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/programs/proto.h: -------------------------------------------------------------------------------- 1 | /* 2 | * proto.h 3 | * 4 | * This file contains function prototypes 5 | * 6 | * Started 11/1/99 7 | * George 8 | * 9 | * $Id: proto.h 10513 2011-07-07 22:06:03Z karypis $ 10 | * 11 | */ 12 | 13 | #ifndef _PROTOBIN_H_ 14 | #define _PROTOBIN_H_ 15 | 16 | 17 | /* io.c */ 18 | graph_t *ReadGraph(params_t *); 19 | mesh_t *ReadMesh(params_t *); 20 | void ReadTPwgts(params_t *params, idx_t ncon); 21 | void ReadPOVector(graph_t *graph, char *filename, idx_t *vector); 22 | void WritePartition(char *, idx_t *, idx_t, idx_t); 23 | void WriteMeshPartition(char *, idx_t, idx_t, idx_t *, idx_t, idx_t *); 24 | void WritePermutation(char *, idx_t *, idx_t); 25 | void WriteGraph(graph_t *graph, char *filename); 26 | 27 | 28 | /* smbfactor.c */ 29 | void ComputeFillIn(graph_t *graph, idx_t *perm, idx_t *iperm, 30 | size_t *r_maxlnz, size_t *r_opc); 31 | idx_t smbfct(idx_t neqns, idx_t *xadj, idx_t *adjncy, idx_t *perm, 32 | idx_t *invp, idx_t *xlnz, idx_t *maxlnz, idx_t *xnzsub, 33 | idx_t *nzsub, idx_t *maxsub); 34 | 35 | 36 | /* cmdline.c */ 37 | params_t *parse_cmdline(int argc, char *argv[]); 38 | 39 | /* gpmetis.c */ 40 | void GPPrintInfo(params_t *params, graph_t *graph); 41 | void GPReportResults(params_t *params, graph_t *graph, idx_t *part, idx_t edgecut); 42 | 43 | /* ndmetis.c */ 44 | void NDPrintInfo(params_t *params, graph_t *graph); 45 | void NDReportResults(params_t *params, graph_t *graph, idx_t *perm, idx_t *iperm); 46 | 47 | /* mpmetis.c */ 48 | void MPPrintInfo(params_t *params, mesh_t *mesh); 49 | void MPReportResults(params_t *params, mesh_t *mesh, idx_t *epart, idx_t *npart, 50 | idx_t edgecut); 51 | 52 | /* m2gmetis.c */ 53 | void M2GPrintInfo(params_t *params, mesh_t *mesh); 54 | void M2GReportResults(params_t *params, mesh_t *mesh, graph_t *graph); 55 | 56 | /* stat.c */ 57 | void ComputePartitionInfo(params_t *params, graph_t *graph, idx_t *where); 58 | 59 | 60 | #endif 61 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/programs/struct.h: -------------------------------------------------------------------------------- 1 | /* 2 | * struct.h 3 | * 4 | * This file contains data structures for the various programs of METIS. 5 | * 6 | * Started 8/9/02 7 | * George 8 | * 9 | * $Id: struct.h 13900 2013-03-24 15:27:07Z karypis $ 10 | */ 11 | 12 | #ifndef _STRUCTBIN_H_ 13 | #define _STRUCTBIN_H_ 14 | 15 | 16 | /*************************************************************************/ 17 | /*! This data structure stores the various command line arguments */ 18 | /*************************************************************************/ 19 | typedef struct { 20 | idx_t ptype; 21 | idx_t objtype; 22 | idx_t ctype; 23 | idx_t iptype; 24 | idx_t rtype; 25 | 26 | idx_t no2hop; 27 | idx_t minconn; 28 | idx_t contig; 29 | 30 | idx_t nooutput; 31 | 32 | idx_t balance; 33 | idx_t ncuts; 34 | idx_t niter; 35 | 36 | idx_t gtype; 37 | idx_t ncommon; 38 | 39 | idx_t seed; 40 | idx_t dbglvl; 41 | 42 | idx_t nparts; 43 | 44 | idx_t nseps; 45 | idx_t ufactor; 46 | idx_t pfactor; 47 | idx_t compress; 48 | idx_t ccorder; 49 | 50 | char *filename; 51 | char *outfile; 52 | char *xyzfile; 53 | char *tpwgtsfile; 54 | char *ubvecstr; 55 | 56 | idx_t wgtflag; 57 | idx_t numflag; 58 | real_t *tpwgts; 59 | real_t *ubvec; 60 | 61 | real_t iotimer; 62 | real_t parttimer; 63 | real_t reporttimer; 64 | 65 | size_t maxmemory; 66 | } params_t; 67 | 68 | 69 | #endif 70 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/run_group.sh: -------------------------------------------------------------------------------- 1 | set -Eeuo pipefail 2 | set -x 3 | 4 | # workload=$1 5 | 6 | 7 | program="metis_test.py" 8 | mkdir -p cluster/ 9 | workload=$1 10 | how_many_clusters=$2 11 | hbm_cap=$3 12 | 13 | python3 ${program} -i ../../graph/${workload}_50_percent_sampling_graph.wel -c ${how_many_clusters} -b ${hbm_cap} > cluster/${workload}_hbm_${hbm_cap}.cluster 14 | -------------------------------------------------------------------------------- /metis/metis-5.1.0/vsgen.bat: -------------------------------------------------------------------------------- 1 | MKDIR build\windows 2 | CD build\windows 3 | cmake -DCMAKE_CONFIGURATION_TYPES="Release" ..\.. %* 4 | ECHO VS files have been generated in build\windows 5 | CD ..\..\ 6 | -------------------------------------------------------------------------------- /metis_installation.sh: -------------------------------------------------------------------------------- 1 | # set -e 2 | # set -x 3 | 4 | 5 | cd metis/metis-5.1.0; 6 | pip install metis # Verified on python 3.8.10 7 | make clean 8 | make config shared=1 9 | sudo make install 10 | cd -; 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /port_dataset.py: -------------------------------------------------------------------------------- 1 | 2 | from itertools import islice 3 | import sys 4 | 5 | # workload="dblp" 6 | # workload="amazon_Office_Products" 7 | # workload="amazon_Clothing_Shoes_and_Jewelry" 8 | # workload="amazon_Sports_and_Outdoors" 9 | workload=sys.argv[1] 10 | 11 | # print(workload) 12 | 13 | out_file = open(workload+"_postprocess.csv", "w") 14 | user = 0 15 | 16 | with open("./MERCI/data/4_filtered/"+workload+"/"+workload+"_train_filtered.txt") as fp: 17 | for ln in islice(fp,1,None): 18 | for i in range(0, int(ln.split(' ')[0])): 19 | for elt in ln.strip('\n').split(' ')[1:]: 20 | # print(elt) 21 | if elt.isnumeric(): 22 | out_file.write(str(user)+','+str(int(elt) - 1)+'\n') 23 | # exit() 24 | user += 1 25 | 26 | with open("./MERCI/data/4_filtered/"+workload+"/"+workload+"_test_filtered.txt") as fp: 27 | for ln in islice(fp,1,None): 28 | for i in range(0, int(ln.split(' ')[0])): 29 | for elt in ln.strip('\n').split(' ')[1:]: 30 | if elt.isnumeric(): 31 | out_file.write(str(user)+','+str(int(elt) - 1)+'\n') 32 | user += 1 -------------------------------------------------------------------------------- /prepare_pbuild_one_workload.sh: -------------------------------------------------------------------------------- 1 | # set -Eeuo pipefail 2 | set -x 3 | 4 | 5 | workload=("$1") 6 | hbm_caps=("1.0") 7 | 8 | ### BASE 9 | mkdir -p result/base/ 10 | ./run_base.sh ${workload} result/base/base_result & 11 | wait 12 | 13 | 14 | # ## PATOH 15 | ./run_build_patoh.sh ${workload} & 16 | wait 17 | 18 | line=$(ls -l | sed -n 3p result/base/base_result_${workload}_base/a_sls_graph_${workload}_base.log | sed 's/[^0-9]*//g') 19 | how_many_clusters=$((${line} / 128)) 20 | cd ./MERCI; 21 | start_time=$(date +%s.%3N) 22 | ./2_partition/bin/patoh ./graph/${workload}_patoh.graph ${how_many_clusters} BA=0 23 | end_time=$(date +%s.%3N) 24 | elapsed=$(echo "scale=3; $end_time - $start_time" | bc) 25 | echo "${workload} PATOH partition time: $elapsed" 26 | cd -; 27 | 28 | ## MERCI 29 | line=$(ls -l | sed -n 3p result/base/base_result_${workload}_base/a_sls_graph_${workload}_base.log | sed 's/[^0-9]*//g') 30 | how_many_clusters=$((${line} / 128)) 31 | for hbm_cap in "${hbm_caps[@]}" 32 | do 33 | ./run_cluster_patoh.sh ${workload} ${how_many_clusters} ${hbm_cap} & 34 | done 35 | wait 36 | 37 | 38 | echo "${workload} Finished" -------------------------------------------------------------------------------- /requirement.txt: -------------------------------------------------------------------------------- 1 | numpy 2 | tqdm 3 | networkx 4 | scipy 5 | matplotlib 6 | -------------------------------------------------------------------------------- /run_base.sh: -------------------------------------------------------------------------------- 1 | set -Eeuo pipefail 2 | set -x 3 | 4 | workload=$1 5 | parent_dir=$2 6 | execute_batch_num=${3:-16384} # If not specified Simualte to the end of the dataset 7 | batch_size=64 8 | extra_flag=${@:4} 9 | if [ -z "$extra_flag" ] 10 | then 11 | extra_flag="-fopenmp" 12 | fi 13 | 14 | # if [[ $execute_batch_num == "" ]]; then 15 | # execute_batch_num=16384 # Simualte to the end of the dataset 16 | # fi 17 | 18 | if [[ $workload == "anime" ]]; then 19 | post_data_path="./dataset/anime/rating_postprocess.csv" 20 | elif [[ $workload == "office" ]]; then 21 | post_data_path="./dataset/office/amazon_Office_Products_postprocess.csv" 22 | elif [[ $workload == "dblp" ]]; then 23 | post_data_path="./dataset/dblp/dblp_postprocess.csv" 24 | elif [[ $workload == "sports" ]]; then 25 | post_data_path="./dataset/sports/amazon_Sports_and_Outdoors_postprocess.csv" 26 | elif [[ $workload == "M1" ]]; then 27 | post_data_path="./dataset/merged/merged_twitch_movie_anime_steam.csv" 28 | aux_data_path="./dataset/merged/merged_twitch_movie_anime_steam.aux" 29 | elif [[ $workload == "M2" ]]; then 30 | post_data_path="./dataset/merged/merged_clothes_office_dblp_anime.csv" 31 | aux_data_path="./dataset/merged/merged_clothes_office_dblp_anime.aux" 32 | elif [[ $workload == "M3" ]]; then 33 | post_data_path="./dataset/merged/merged_sports_office_dblp_twitch.csv" 34 | aux_data_path="./dataset/merged/merged_sports_office_dblp_twitch.aux" 35 | elif [[ $workload == "M4" ]]; then 36 | post_data_path="./dataset/merged/merged_sports_clothes_office_dblp.csv" 37 | aux_data_path="./dataset/merged/merged_sports_clothes_office_dblp.aux" 38 | elif [[ $workload == "steam" ]]; then 39 | post_data_path="./dataset/steam/australian_users_items_postprocess.csv" 40 | elif [[ $workload == "movie" ]]; then 41 | post_data_path="./dataset/movie/rating_postprocess.csv" 42 | elif [[ $workload == "twitch" ]]; then 43 | post_data_path="./dataset/twitch/100k_a_postprocess.csv" 44 | elif [[ $workload == "clothes" ]]; then 45 | post_data_path="./dataset/clothes/amazon_Clothing_Shoes_and_Jewelry_postprocess.csv" 46 | else 47 | echo "invalid workload given in argv 1" 48 | exit 0 49 | fi 50 | 51 | 52 | run_base(){ 53 | write_dir=${parent_dir}_${workload}_base 54 | mkdir -p ${write_dir}/ 55 | store_directory=${write_dir}/ 56 | mkdir -p ${store_directory} 57 | g++ -std=c++11 -O3 -funroll-loops -fopenmp -DBATCH_SIZE=${batch_size} sls_graph_base.cc -o bin/sls_graph_${workload}_base 58 | ./bin/sls_graph_${workload}_base ${post_data_path} > ${store_directory}/a_sls_graph_${workload}_base.log 59 | } 60 | 61 | run_base & 62 | 63 | wait 64 | echo "All processes done!" 65 | -------------------------------------------------------------------------------- /run_build_graph.sh: -------------------------------------------------------------------------------- 1 | set -Eeuo pipefail 2 | set -x 3 | 4 | workload=$1 5 | execute_batch_num=${2:-16384} # If not specified Simualte to the end of the dataset 6 | batch_size=64 7 | extra_flag=${@:3} 8 | if [ -z "$extra_flag" ] 9 | then 10 | extra_flag="-fopenmp" 11 | fi 12 | 13 | # if [[ $execute_batch_num == "" ]]; then 14 | # execute_batch_num=16384 # Simualte to the end of the dataset 15 | # fi 16 | 17 | if [[ $workload == "anime" ]]; then 18 | post_data_path="./dataset/anime/rating_postprocess.csv" 19 | elif [[ $workload == "office" ]]; then 20 | post_data_path="./dataset/office/amazon_Office_Products_postprocess.csv" 21 | elif [[ $workload == "dblp" ]]; then 22 | post_data_path="./dataset/dblp/dblp_postprocess.csv" 23 | elif [[ $workload == "sports" ]]; then 24 | post_data_path="./dataset/sports/amazon_Sports_and_Outdoors_postprocess.csv" 25 | elif [[ $workload == "steam" ]]; then 26 | post_data_path="./dataset/steam/australian_users_items_postprocess.csv" 27 | elif [[ $workload == "movie" ]]; then 28 | post_data_path="./dataset/movie/rating_postprocess.csv" 29 | elif [[ $workload == "twitch" ]]; then 30 | post_data_path="./dataset/twitch/100k_a_postprocess.csv" 31 | elif [[ $workload == "clothes" ]]; then 32 | post_data_path="./dataset/clothes/amazon_Clothing_Shoes_and_Jewelry_postprocess.csv" 33 | else 34 | echo "invalid workload given in argv 1" 35 | exit 0 36 | fi 37 | 38 | 39 | build_graph(){ 40 | percent=${1} 41 | g++ -std=c++11 -O3 -funroll-loops -fopenmp -DSAMPLING_PERCENT=${percent} sls_graph_build.cc -o bin/sls_graph_${workload}_build_${percent} 42 | 43 | ./bin/sls_graph_${workload}_build_${percent} ${post_data_path} > graph/${workload}_${percent}_percent_sampling_graph.wel 44 | } 45 | 46 | ps=(1 2 5 10 20 50 100) 47 | ps=(50 100) 48 | ps=(50) 49 | for p in "${ps[@]}" 50 | do 51 | build_graph ${p} & 52 | # echo ${p} 53 | done 54 | 55 | 56 | wait 57 | echo "${workload} processes done!" 58 | -------------------------------------------------------------------------------- /run_build_graph_all.sh: -------------------------------------------------------------------------------- 1 | set -Eeuo pipefail 2 | set -x 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | mkdir -p graph/ 11 | ./run_build_graph_group.sh & 12 | ./run_build_graph_merged_group.sh & 13 | 14 | wait 15 | 16 | echo "Done build ICG for all datasets" -------------------------------------------------------------------------------- /run_build_graph_group.sh: -------------------------------------------------------------------------------- 1 | set -Eeuo pipefail 2 | set -x 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | workloads=("anime" "steam" "movie" "sports" "twitch" "clothes" "dblp" "office") 11 | # workloads=() 12 | for workload in "${workloads[@]}" 13 | do 14 | ./run_build_graph.sh ${workload} & 15 | done 16 | 17 | wait 18 | echo "Build single done!" 19 | -------------------------------------------------------------------------------- /run_build_graph_merged.sh: -------------------------------------------------------------------------------- 1 | set -Eeuo pipefail 2 | set -x 3 | 4 | workload=$1 5 | execute_batch_num=${2:-16384} # If not specified Simualte to the end of the dataset 6 | batch_size=64 7 | extra_flag=${@:3} 8 | if [ -z "$extra_flag" ] 9 | then 10 | extra_flag="-fopenmp" 11 | fi 12 | 13 | # if [[ $execute_batch_num == "" ]]; then 14 | # execute_batch_num=16384 # Simualte to the end of the dataset 15 | # fi 16 | 17 | if [[ $workload == "M1" ]]; then 18 | post_data_path="./dataset/merged/merged_twitch_movie_anime_steam.csv" 19 | aux_data_path="./dataset/merged/merged_twitch_movie_anime_steam.aux" 20 | elif [[ $workload == "M2" ]]; then 21 | post_data_path="./dataset/merged/merged_clothes_office_dblp_anime.csv" 22 | aux_data_path="./dataset/merged/merged_clothes_office_dblp_anime.aux" 23 | elif [[ $workload == "M3" ]]; then 24 | post_data_path="./dataset/merged/merged_sports_office_dblp_twitch.csv" 25 | aux_data_path="./dataset/merged/merged_sports_office_dblp_twitch.aux" 26 | elif [[ $workload == "M4" ]]; then 27 | post_data_path="./dataset/merged/merged_sports_clothes_office_dblp.csv" 28 | aux_data_path="./dataset/merged/merged_sports_clothes_office_dblp.aux" 29 | else 30 | echo "invalid workload given in argv 1" 31 | exit 0 32 | fi 33 | 34 | 35 | build_merge(){ 36 | percent=${1} 37 | 38 | g++ -std=c++11 -O3 -funroll-loops -fopenmp -DSAMPLING_PERCENT=${percent} sls_graph_build_merged.cc -o bin/sls_graph_${workload}_build_${percent}_merged 39 | 40 | ./bin/sls_graph_${workload}_build_${percent}_merged ${post_data_path} ${aux_data_path} > graph/${workload}_${percent}_percent_sampling_graph.wel 41 | 42 | } 43 | 44 | ps=(1 2 5 10 20 50 100) 45 | ps=(50 100) 46 | ps=(50) 47 | for p in "${ps[@]}" 48 | do 49 | build_merge ${p} & 50 | # echo ${p} 51 | done 52 | 53 | 54 | wait 55 | echo "${workload} processes done!" 56 | -------------------------------------------------------------------------------- /run_build_graph_merged_group.sh: -------------------------------------------------------------------------------- 1 | set -Eeuo pipefail 2 | set -x 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | workloads=("M1" "M2" "M3" "M4") 12 | 13 | for workload in "${workloads[@]}" 14 | do 15 | ./run_build_graph_merged.sh ${workload} & 16 | done 17 | 18 | wait 19 | echo "Build merged done!" 20 | -------------------------------------------------------------------------------- /run_build_patoh.sh: -------------------------------------------------------------------------------- 1 | set -Eeuo pipefail 2 | set -x 3 | 4 | workload=$1 5 | execute_batch_num=${2:-16384} # If not specified Simualte to the end of the dataset 6 | batch_size=64 7 | extra_flag=${@:3} 8 | if [ -z "$extra_flag" ] 9 | then 10 | extra_flag="-fopenmp" 11 | fi 12 | 13 | 14 | if [[ $workload == "anime" ]]; then 15 | post_data_path="./dataset/anime/rating_postprocess.csv" 16 | elif [[ $workload == "office" ]]; then 17 | post_data_path="./dataset/office/amazon_Office_Products_postprocess.csv" 18 | elif [[ $workload == "dblp" ]]; then 19 | post_data_path="./dataset/dblp/dblp_postprocess.csv" 20 | elif [[ $workload == "sports" ]]; then 21 | post_data_path="./dataset/sports/amazon_Sports_and_Outdoors_postprocess.csv" 22 | elif [[ $workload == "M1" ]]; then 23 | post_data_path="./dataset/merged/merged_twitch_movie_anime_steam.csv" 24 | aux_data_path="./dataset/merged/merged_twitch_movie_anime_steam.aux" 25 | elif [[ $workload == "M2" ]]; then 26 | post_data_path="./dataset/merged/merged_clothes_office_dblp_anime.csv" 27 | aux_data_path="./dataset/merged/merged_clothes_office_dblp_anime.aux" 28 | elif [[ $workload == "M3" ]]; then 29 | post_data_path="./dataset/merged/merged_sports_office_dblp_twitch.csv" 30 | aux_data_path="./dataset/merged/merged_sports_office_dblp_twitch.aux" 31 | elif [[ $workload == "M4" ]]; then 32 | post_data_path="./dataset/merged/merged_sports_clothes_office_dblp.csv" 33 | aux_data_path="./dataset/merged/merged_sports_clothes_office_dblp.aux" 34 | elif [[ $workload == "steam" ]]; then 35 | post_data_path="./dataset/steam/australian_users_items_postprocess.csv" 36 | elif [[ $workload == "movie" ]]; then 37 | post_data_path="./dataset/movie/rating_postprocess.csv" 38 | elif [[ $workload == "twitch" ]]; then 39 | post_data_path="./dataset/twitch/100k_a_postprocess.csv" 40 | elif [[ $workload == "clothes" ]]; then 41 | post_data_path="./dataset/clothes/amazon_Clothing_Shoes_and_Jewelry_postprocess.csv" 42 | else 43 | echo "invalid workload given in argv 1" 44 | exit 0 45 | fi 46 | 47 | build_patoh(){ 48 | percent=${1} 49 | g++ -std=c++11 -O3 -funroll-loops -fopenmp -DSAMPLING_PERCENT=${percent} sls_graph_patoh.cc -o bin/sls_graph_${workload}_patoh_${percent} 50 | 51 | ./bin/sls_graph_${workload}_patoh_${percent} ${post_data_path} > ./MERCI/graph/${workload}_patoh.graph 52 | 53 | } 54 | 55 | ps=(1 2 5 10 20 50 100) 56 | ps=(50 100) 57 | ps=(50) 58 | for p in "${ps[@]}" 59 | do 60 | build_patoh ${p} & 61 | # echo ${p} 62 | done 63 | 64 | 65 | wait 66 | echo "All processes done!" 67 | -------------------------------------------------------------------------------- /run_clean_dataset.sh: -------------------------------------------------------------------------------- 1 | set -Eeuo pipefail 2 | set -x 3 | 4 | workload=$1 5 | execute_batch_num=${2:-16384} # If not specified Simualte to the end of the dataset 6 | batch_size=64 7 | extra_flag=${@:3} 8 | if [ -z "$extra_flag" ] 9 | then 10 | extra_flag="-fopenmp" 11 | fi 12 | 13 | # if [[ $execute_batch_num == "" ]]; then 14 | # execute_batch_num=16384 # Simualte to the end of the dataset 15 | # fi 16 | 17 | if [[ $workload == "anime" ]]; then 18 | data_path="./dataset/anime/rating_preprocess.csv" 19 | post_data_path="./dataset/anime/rating_postprocess.csv" 20 | elif [[ $workload == "steam" ]]; then 21 | data_path="./dataset/steam/australian_users_items_preprocess.csv" 22 | post_data_path="./dataset/steam/australian_users_items_postprocess.csv" 23 | elif [[ $workload == "movie" ]]; then 24 | data_path="./dataset/movie/rating_preprocess.csv" 25 | post_data_path="./dataset/movie/rating_postprocess.csv" 26 | elif [[ $workload == "twitch" ]]; then 27 | data_path="./dataset/twitch/100k_a_preprocess.csv" 28 | post_data_path="./dataset/twitch/100k_a_postprocess.csv" 29 | else 30 | echo "invalid workload given in argv 1" 31 | exit 0 32 | fi 33 | 34 | 35 | g++ -g -std=c++11 -O3 -funroll-loops -fopenmp sls_clean_dataset.cc -o bin/sls_clean_${workload} 36 | ./bin/sls_clean_${workload} ${data_path} > ${post_data_path} 37 | 38 | 39 | wait 40 | echo "${workload} done!" 41 | -------------------------------------------------------------------------------- /run_grace_hbm_only.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | set -x 3 | 4 | if [[ $# -eq 0 ]] ; then 5 | echo 'give me workload' 6 | exit 0 7 | fi 8 | 9 | 10 | workload=$1 11 | decay=$2 12 | length=$3 13 | 14 | 15 | mkdir -p hbm_only_grace_log/ 16 | 17 | 18 | g++ -fopenmp -O3 hbm_only_grace_inference_cnt.cc -o ./bin/grace_hbm_only_cnt_${workload}.out 19 | ./bin/grace_hbm_only_cnt_${workload}.out ${workload} post_trace/${workload}.trace ${decay} ${length} 20 | 21 | 22 | 23 | wait 24 | 25 | echo "${workload} Finished" -------------------------------------------------------------------------------- /run_group_clean_dataset.sh: -------------------------------------------------------------------------------- 1 | set -Eeuo pipefail 2 | set -x 3 | 4 | ./run_clean_dataset.sh anime & 5 | ./run_clean_dataset.sh steam & 6 | ./run_clean_dataset.sh movie & 7 | ./run_clean_dataset.sh twitch & 8 | wait 9 | 10 | echo "Done clean dataset" -------------------------------------------------------------------------------- /run_group_reformat.sh: -------------------------------------------------------------------------------- 1 | set -Eeuo pipefail 2 | set -x 3 | 4 | 5 | 6 | mkdir -p post_trace/ 7 | 8 | workloads=("anime" "steam" "movie" "clothes" "twitch" "sports" "office" "dblp" "M1" "M2" "M3" "M4") 9 | 10 | for workload in "${workloads[@]}" 11 | do 12 | ./run_single_reformat.sh ${workload} & 13 | done 14 | 15 | wait 16 | echo "All processes done!" 17 | -------------------------------------------------------------------------------- /run_merci_hbm_only.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | set -x 3 | # nvcc -Xcompiler -fopenmp -Xptxas -O3 merci_inference.cu -o ./bin/merci.out 4 | if [[ $# -eq 0 ]] ; then 5 | echo 'give me workload' 6 | exit 0 7 | fi 8 | 9 | # make clean; 10 | # make ./bin/merci.out 11 | 12 | workload=$1 13 | # hbm_cap=$2 14 | 15 | 16 | mkdir -p hbm_only_merci_log/ 17 | 18 | g++ -fopenmp -O3 hbm_only_merci_inference_cnt.cc -o ./bin/merci_hbm_only_cnt_${workload}.out 19 | 20 | ./bin/merci_hbm_only_cnt_${workload}.out ${workload} post_trace/${workload}.trace 21 | 22 | 23 | 24 | wait 25 | 26 | echo "Finished" -------------------------------------------------------------------------------- /run_merge_all.sh: -------------------------------------------------------------------------------- 1 | set -Eeuo pipefail 2 | set -x 3 | 4 | mkdir -p dataset/merged/ 5 | ./run_merge_graph.sh twitch movie anime steam & 6 | ./run_merge_graph.sh clothes office dblp anime & 7 | ./run_merge_graph.sh sports office dblp twitch & 8 | ./run_merge_graph.sh sports clothes office dblp & 9 | 10 | wait 11 | echo "Merge done" 12 | -------------------------------------------------------------------------------- /run_merge_graph.sh: -------------------------------------------------------------------------------- 1 | set -Eeuo pipefail 2 | set -x 3 | 4 | translate(){ 5 | workload=$1 6 | if [[ $workload == "anime" ]]; then 7 | post_data_path="./dataset/anime/rating_postprocess.csv" 8 | elif [[ $workload == "office" ]]; then 9 | post_data_path="./dataset/office/amazon_Office_Products_postprocess.csv" 10 | elif [[ $workload == "dblp" ]]; then 11 | post_data_path="./dataset/dblp/dblp_postprocess.csv" 12 | elif [[ $workload == "sports" ]]; then 13 | post_data_path="./dataset/sports/amazon_Sports_and_Outdoors_postprocess.csv" 14 | elif [[ $workload == "M1" ]]; then 15 | post_data_path="./dataset/merged/merged_twitch_movie_anime_steam.csv" 16 | aux_data_path="./dataset/merged/merged_twitch_movie_anime_steam.aux" 17 | elif [[ $workload == "M2" ]]; then 18 | post_data_path="./dataset/merged/merged_clothes_office_dblp_anime.csv" 19 | aux_data_path="./dataset/merged/merged_clothes_office_dblp_anime.aux" 20 | elif [[ $workload == "M3" ]]; then 21 | post_data_path="./dataset/merged/merged_sports_office_dblp_twitch.csv" 22 | aux_data_path="./dataset/merged/merged_sports_office_dblp_twitch.aux" 23 | elif [[ $workload == "M4" ]]; then 24 | post_data_path="./dataset/merged/merged_sports_clothes_office_dblp.csv" 25 | aux_data_path="./dataset/merged/merged_sports_clothes_office_dblp.aux" 26 | elif [[ $workload == "steam" ]]; then 27 | post_data_path="./dataset/steam/australian_users_items_postprocess.csv" 28 | elif [[ $workload == "movie" ]]; then 29 | post_data_path="./dataset/movie/rating_postprocess.csv" 30 | elif [[ $workload == "twitch" ]]; then 31 | post_data_path="./dataset/twitch/100k_a_postprocess.csv" 32 | elif [[ $workload == "clothes" ]]; then 33 | post_data_path="./dataset/clothes/amazon_Clothing_Shoes_and_Jewelry_postprocess.csv" 34 | else 35 | echo "invalid workload given in argv 1" 36 | exit 0 37 | fi 38 | 39 | } 40 | 41 | mix_dataset(){ 42 | w1=$1 43 | w2=$2 44 | w3=$3 45 | w4=$4 46 | echo $w1 $w2 $w3 $w4 47 | translate $w1 48 | data1=$post_data_path 49 | translate $w2 50 | data2=$post_data_path 51 | translate $w3 52 | data3=$post_data_path 53 | translate $w4 54 | data4=$post_data_path 55 | 56 | echo $data1 $data2 $data3 $data4 57 | } 58 | 59 | g++ -std=c++11 -O3 -funroll-loops -fopenmp sls_merge_graph.cc -o bin/sls_merge_graph_$1_$2_$3_$4 60 | 61 | mix_dataset $1 $2 $3 $4 62 | 63 | ./bin/sls_merge_graph_$1_$2_$3_$4 $data1 $data2 $data3 $data4 dataset/merged/merged_$1_$2_$3_$4.aux > dataset/merged/merged_$1_$2_$3_$4.csv 64 | 65 | 66 | wait 67 | 68 | echo "Merge $1 $2 $3 $4 done!" 69 | -------------------------------------------------------------------------------- /run_metis_hbm_only.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | set -x 3 | if [[ $# -eq 0 ]] ; then 4 | echo 'give me workload' 5 | exit 0 6 | fi 7 | 8 | 9 | workload=$1 10 | # hbm_cap=$2 11 | 12 | 13 | mkdir -p hbm_only_metis_log/ 14 | 15 | g++ -fopenmp -O3 hbm_only_metis_inference_cnt.cc -o ./bin/metis_hbm_only_cnt_${workload}.out 16 | 17 | ./bin/metis_hbm_only_cnt_${workload}.out ${workload} post_trace/${workload}.trace 18 | 19 | 20 | 21 | wait 22 | 23 | echo "Finished" -------------------------------------------------------------------------------- /run_single_reformat.sh: -------------------------------------------------------------------------------- 1 | set -Eeuo pipefail 2 | set -x 3 | 4 | workload=$1 5 | 6 | if [[ $workload == "anime" ]]; then 7 | post_data_path="./dataset/anime/rating_postprocess.csv" 8 | elif [[ $workload == "office" ]]; then 9 | post_data_path="./dataset/office/amazon_Office_Products_postprocess.csv" 10 | elif [[ $workload == "dblp" ]]; then 11 | post_data_path="./dataset/dblp/dblp_postprocess.csv" 12 | elif [[ $workload == "sports" ]]; then 13 | post_data_path="./dataset/sports/amazon_Sports_and_Outdoors_postprocess.csv" 14 | elif [[ $workload == "M1" ]]; then 15 | post_data_path="./dataset/merged/merged_twitch_movie_anime_steam.csv" 16 | aux_data_path="./dataset/merged/merged_twitch_movie_anime_steam.aux" 17 | elif [[ $workload == "M2" ]]; then 18 | post_data_path="./dataset/merged/merged_clothes_office_dblp_anime.csv" 19 | aux_data_path="./dataset/merged/merged_clothes_office_dblp_anime.aux" 20 | elif [[ $workload == "M3" ]]; then 21 | post_data_path="./dataset/merged/merged_sports_office_dblp_twitch.csv" 22 | aux_data_path="./dataset/merged/merged_sports_office_dblp_twitch.aux" 23 | elif [[ $workload == "M4" ]]; then 24 | post_data_path="./dataset/merged/merged_sports_clothes_office_dblp.csv" 25 | aux_data_path="./dataset/merged/merged_sports_clothes_office_dblp.aux" 26 | elif [[ $workload == "steam" ]]; then 27 | post_data_path="./dataset/steam/australian_users_items_postprocess.csv" 28 | elif [[ $workload == "movie" ]]; then 29 | post_data_path="./dataset/movie/rating_postprocess.csv" 30 | elif [[ $workload == "twitch" ]]; then 31 | post_data_path="./dataset/twitch/100k_a_postprocess.csv" 32 | elif [[ $workload == "clothes" ]]; then 33 | post_data_path="./dataset/clothes/amazon_Clothing_Shoes_and_Jewelry_postprocess.csv" 34 | else 35 | echo "invalid workload given in argv 1" 36 | exit 0 37 | fi 38 | 39 | g++ -std=c++11 -O3 -funroll-loops -fopenmp sls_reformat_trace.cc -o ./bin/reformat_${workload}.out 40 | 41 | ./bin/reformat_${workload}.out ${post_data_path} post_trace/${workload}.trace 42 | 43 | wait 44 | echo "${workload} done!" 45 | -------------------------------------------------------------------------------- /run_space_hbm_only.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | set -x 3 | # nvcc -Xcompiler -fopenmp -Xptxas -O3 merci_inference.cu -o ./bin/merci.out 4 | if [[ $# -eq 0 ]] ; then 5 | echo 'give me workload' 6 | exit 0 7 | fi 8 | 9 | workload=$1 10 | # hbm_cap=$2 11 | 12 | if [[ $workload == "anime" ]]; then 13 | post_data_path="./dataset/anime/rating_postprocess.csv" 14 | elif [[ $workload == "office" ]]; then 15 | post_data_path="./dataset/office/amazon_Office_Products_postprocess.csv" 16 | elif [[ $workload == "dblp" ]]; then 17 | post_data_path="./dataset/dblp/dblp_postprocess.csv" 18 | elif [[ $workload == "sports" ]]; then 19 | post_data_path="./dataset/sports/amazon_Sports_and_Outdoors_postprocess.csv" 20 | elif [[ $workload == "M1" ]]; then 21 | post_data_path="./dataset/merged/merged_twitch_movie_anime_steam.csv" 22 | aux_data_path="./dataset/merged/merged_twitch_movie_anime_steam.aux" 23 | elif [[ $workload == "M2" ]]; then 24 | post_data_path="./dataset/merged/merged_clothes_office_dblp_anime.csv" 25 | aux_data_path="./dataset/merged/merged_clothes_office_dblp_anime.aux" 26 | elif [[ $workload == "M3" ]]; then 27 | post_data_path="./dataset/merged/merged_sports_office_dblp_twitch.csv" 28 | aux_data_path="./dataset/merged/merged_sports_office_dblp_twitch.aux" 29 | elif [[ $workload == "M4" ]]; then 30 | post_data_path="./dataset/merged/merged_sports_clothes_office_dblp.csv" 31 | aux_data_path="./dataset/merged/merged_sports_clothes_office_dblp.aux" 32 | elif [[ $workload == "steam" ]]; then 33 | post_data_path="./dataset/steam/australian_users_items_postprocess.csv" 34 | elif [[ $workload == "movie" ]]; then 35 | post_data_path="./dataset/movie/rating_postprocess.csv" 36 | elif [[ $workload == "twitch" ]]; then 37 | post_data_path="./dataset/twitch/100k_a_postprocess.csv" 38 | elif [[ $workload == "clothes" ]]; then 39 | post_data_path="./dataset/clothes/amazon_Clothing_Shoes_and_Jewelry_postprocess.csv" 40 | else 41 | echo "invalid workload given in argv 1" 42 | exit 0 43 | fi 44 | 45 | mkdir -p hbm_only_space_log/ 46 | 47 | g++ -fopenmp -O3 hbm_only_space_inference_cnt.cc -o ./bin/space_hbm_only_cnt_${workload}.out 48 | 49 | ./bin/space_hbm_only_cnt_${workload}.out ${workload} post_trace/${workload}.trace ${post_data_path} 50 | 51 | 52 | wait 53 | 54 | echo "Finished" -------------------------------------------------------------------------------- /sls_graph_base.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include "timer.h" 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | #define NUM_OF_TABLE 1 19 | // #define BATCH_SIZE 64 20 | #define DIMENSION 64 21 | // #define PRINT_TRACE 22 | 23 | #define START_MEM 0x000000000 24 | #define INDIV_TABLE_SIZE 0x100000000 25 | #define STRINGIZE(x) #x 26 | #define STRINGIZE_VALUE_OF(x) STRINGIZE(x) 27 | 28 | #define CACHE_ITEM_RATIO 1 29 | 30 | using namespace std; 31 | 32 | int main(int argc, char** argv) 33 | { 34 | long int rowCount = 0; 35 | map, long long> edge_weight; 36 | 37 | std::ifstream infile(argv[1], std::ios::app); 38 | // std::ifstream graphfile(argv[2], std::ios::app); 39 | std::string line; 40 | 41 | omp_set_num_threads(NUM_OF_TABLE); 42 | 43 | std::map> user_item; 44 | std::vector> sorted_user_item; 45 | std::map obj_freq; 46 | long int dict_size = -1; 47 | long int total_access = 0; 48 | while (std::getline(infile, line)) 49 | { 50 | std::istringstream iss(line); 51 | long int usr = 0; 52 | long int obj = 0; 53 | char dummy; 54 | if (!(iss >> usr >> dummy >> obj)) { break; } // error 55 | 56 | if (user_item.find(usr) != user_item.end() && 57 | std::find(user_item[usr].begin(), user_item[usr].end(), obj) != user_item[usr].end() ){ 58 | continue; 59 | } 60 | 61 | total_access++; 62 | 63 | if (user_item.find(usr) == user_item.end()){ 64 | user_item[usr] = std::vector(); 65 | } 66 | user_item[usr].push_back(obj); 67 | 68 | 69 | if (obj_freq.find(obj) == obj_freq.end()){ 70 | obj_freq[obj] = 0; 71 | } 72 | obj_freq[obj]++; 73 | 74 | if (obj + 1 > dict_size){ 75 | dict_size = obj + 1; 76 | } 77 | } 78 | 79 | cout << "dict size is: " << dict_size << endl; 80 | cout << "User #: " << user_item.size() << endl; 81 | cout << "Item #: " << obj_freq.size() << endl; 82 | cout << "Access #: " << total_access << endl; 83 | cout << "Avg user accesses #: " << total_access * 1.0 / user_item.size() << endl; 84 | cout << "Avg obj being accessed #: " << total_access * 1.0 / obj_freq.size() << endl; 85 | 86 | return 0; 87 | 88 | } -------------------------------------------------------------------------------- /timer.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015, The Regents of the University of California (Regents) 2 | // See LICENSE.txt for license details 3 | 4 | #ifndef TIMER_H_ 5 | #define TIMER_H_ 6 | 7 | #include 8 | 9 | 10 | /* 11 | GAP Benchmark Suite 12 | Class: Timer 13 | Authors: Scott Beamer, Michael Sutton 14 | 15 | Simple timer that wraps std::chrono 16 | */ 17 | 18 | class Timer { 19 | public: 20 | Timer() {} 21 | 22 | void Start() { 23 | elapsed_time_ = start_time_ = std::chrono::high_resolution_clock::now(); 24 | } 25 | 26 | void Stop() { 27 | elapsed_time_ = std::chrono::high_resolution_clock::now(); 28 | } 29 | 30 | double Seconds() const { 31 | return std::chrono::duration_cast>(elapsed_time_ - start_time_).count(); 32 | } 33 | 34 | double Millisecs() const { 35 | return std::chrono::duration_cast>(elapsed_time_ - start_time_).count(); 36 | } 37 | 38 | double Microsecs() const { 39 | return std::chrono::duration_cast>(elapsed_time_ - start_time_).count(); 40 | } 41 | 42 | private: 43 | std::chrono::high_resolution_clock::time_point start_time_, elapsed_time_; 44 | }; 45 | 46 | // Times op's execution using the timer t 47 | #define TIME_OP(t, op) { t.Start(); (op); t.Stop(); } 48 | 49 | #endif // TIMER_H_ 50 | --------------------------------------------------------------------------------