Commit b2e5176c authored by John Zhang's avatar John Zhang

added graphchi-java as a new benchmark

parent ffbd9389
<!--
* Copyright (c) 2009 The Australian National University.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Apache License v2.0.
* You may obtain the license at
*
* http://www.opensource.org/licenses/apache2.0.php
-->
<project name="graphchi" default="all" basedir="../..">
<description>DaCapo GraphChi benchmark</description>
<property file="dacapo.properties"/>
<property name="bm-name" value="graphchi"/>
<property name="bm-version" value="0.2.2"/>
<property name="bm-src" value="${bm-name}-java-src-${bm-version}.tar.gz"/>
<property name="bm-git-url" value="${github.url}/GraphChi/graphchi-java"/>
<property name="bm-git-commit" value="e5136d52512823fb34594e2851cbb23d62dd7ac8"/>
<property name="netflix-mm-dl" value="netflix_mm.gz"/>
<property name="netflix-mm-url" value="https://courses.cs.washington.edu/courses/cse547/16sp/datasets"/>
<property name="livejournal-dl" value="soc-LiveJournal1.txt.gz"/>
<property name="livejournal-url" value="https://snap.stanford.edu/data"/>
<import file="../common.xml"/>
<property name="mvn-home" location="${toolsdir}/apache-maven-${mvn.version}/bin"/>
<property name="mvn-exe" value="${mvn-home}/mvn"/>
<condition property="mvn-exe" value="${mvn-home}/mvn.bat">
<os family="windows"/>
</condition>
<target name="source">
<antcall target="check-source">
<param name="target-dir" value="${bm-downloads}"/>
<param name="target-url" value="${netflix-mm-url}"/>
<param name="target-file" value="${netflix-mm-dl}"/>
</antcall>
<antcall target="check-source">
<param name="target-dir" value="${bm-downloads}"/>
<param name="target-url" value="${livejournal-url}"/>
<param name="target-file" value="${livejournal-dl}"/>
</antcall>
</target>
<target name="unpack" depends="untar, patch"/>
<target name="bm-build">
<mkdir dir="${bm-build-dir}"/>
<exec executable="${mvn-exe}" dir="${bm-build-dir}" failonerror="yes">
<arg line="assembly:assembly -DdescriptorId=jar-with-dependencies"/>
</exec>
</target>
<target name="data">
<mkdir dir="${bm-data}/${bm-name}"/>
<gunzip src="${bm-downloads}/${netflix-mm-dl}" dest="${bm-data}/${bm-name}"/>
<gunzip src="${bm-downloads}/${livejournal-dl}" dest="${bm-data}/${bm-name}"/>
<zip destfile="${bm-dat}/${bm-name}.zip">
<fileset dir="${bm-data}/" includes="${bm-name}/**"/>
</zip>
<delete dir="${bm-data}/${bm-name}"/>
</target>
<target name="jar">
<copy file="${bm-build-dir}/target/${bm-name}-java-${bm-version}-jar-with-dependencies.jar"
tofile="${bm-jars}/${bm-name}-${bm-version}.jar"/>
</target>
</project>
f5d4925861787fca675520cddee88126
\ No newline at end of file
benchmark graphchi
class org.dacapo.harness.GraphChi
thread-model per_cpu
jars "graphchi-0.2.2.jar";
// TODO: calibrate & validate
size netflix args "ALSMatrixFactorization", "${SCRATCH}/graphchi/netflix_mm", "10";
size livejournal args "Pagerank", "${SCRATCH}/graphchi/soc-LiveJournal1.txt", "10", "edgelist";
description
short "A disk-based graph computation engine.",
long "A disk-based system for computing efficiently on graphs with billions of edges, by using parallel sliding windows method on smaller shards of graphs.",
copyright "??", // TBC
license "??", // TBC
url "https://github.com/GraphChi/graphchi-java",
version "0.2.2",
threads "Explicitly multi-threaded, scaled to available processors.";
diff --git orig/pom.xml ./pom.xml
index 52d0b86..1a7857a 100644
--- orig/pom.xml
+++ ./pom.xml
@@ -47,7 +47,7 @@
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
- <version>2.9.0-1</version>
+ <version>2.11.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
@@ -73,11 +73,6 @@
<artifactId>hadoop-core</artifactId>
<version>0.20.2</version>
</dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-math</artifactId>
- <version>2.0</version>
- </dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math</artifactId>
diff --git orig/src/main/java/edu/cmu/graphchi/ChiLogger.java ./src/main/java/edu/cmu/graphchi/ChiLogger.java
index fd67754..0c7ac42 100644
--- orig/src/main/java/edu/cmu/graphchi/ChiLogger.java
+++ ./src/main/java/edu/cmu/graphchi/ChiLogger.java
@@ -63,18 +63,18 @@ public class ChiLogger {
StringBuilder sb = new StringBuilder();
// Minimize memory allocations here.
- dat.setTime(record.getMillis());
- args[0] = dat;
-
-
- // Date and time
- StringBuffer text = new StringBuffer();
- if (formatter == null) {
- formatter = new MessageFormat(format);
- }
- formatter.format(args, text, null);
- sb.append(text);
- sb.append(" ");
+ // dat.setTime(record.getMillis());
+ // args[0] = dat;
+
+
+ // // Date and time
+ // StringBuffer text = new StringBuffer();
+ // if (formatter == null) {
+ // formatter = new MessageFormat(format);
+ // }
+ // formatter.format(args, text, null);
+ // sb.append(text);
+ // sb.append(" ");
// Logger name
/*
* Copyright (c) 2009 The Australian National University.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Apache License v2.0.
* You may obtain the license at
*
* http://www.opensource.org/licenses/apache2.0.php
*/
package org.dacapo.harness;
import java.io.File;
import java.util.Arrays;
import org.dacapo.harness.Benchmark;
import org.dacapo.parser.Config;
public class GraphChi extends Benchmark {
private String[] args;
private Class<?> cls;
public GraphChi(Config config, File scratch) throws Exception {
super(config, scratch, false);
}
@Override
protected void prepare(String size) throws Exception {
super.prepare(size);
String[] config_args = config.preprocessArgs(size, scratch);
String strAppClsName = config_args[0];
args = Arrays.copyOfRange(config_args, 1, config_args.length);
cls = Class.forName("edu.cmu.graphchi.apps." + strAppClsName, true, loader);
this.method = cls.getMethod("main", new Class[] { String[].class });
}
public void iterate(String size) throws Exception {
method.invoke(null, (Object)args);
}
}
......@@ -406,6 +406,9 @@ See ${log.build.report} for a summary of benchmark build status.
<target name="fop" depends="init,harness">
<build.bm benchmark="fop"/>
</target>
<target name="graphchi" depends="init,harness">
<build.bm benchmark="graphchi"/>
</target>
<target name="jython" depends="init,harness">
<build.bm benchmark="jython"/>
</target>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment