[Javabdd-checkins] JavaBDD/xdocs compiling.xml,NONE,1.1 installing.xml,NONE,1.1 performance.xml,NONE
Brought to you by:
joewhaley
From: John W. <joe...@us...> - 2004-07-27 18:23:38
|
Update of /cvsroot/javabdd/JavaBDD/xdocs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19687/xdocs Added Files: compiling.xml installing.xml performance.xml Log Message: --- NEW FILE: installing.xml --- <?xml version="1.0"?> <document> <properties> <title>Installing JavaBDD</title> <author email="joe...@us...">John Whaley</author> </properties> <body> <section name="Installing JavaBDD"> <p> Download the binary archive for your system and extract the files. If you want to use the native BuDDy library, put the <code>buddy.dll</code> (on Windows) or <code>libbuddy.so</code> (on Unix) somewhere in your library path or in the directory you will execute from. (JavaBDD will automatically search the current directory for the native library, so there is no need to specify the current directory in the "java.library.path" system property.) Add the JavaBDD jar file to your Java class path if you want to compile and/or run with JavaBDD. </p> <p> The JavaBDD jar file contains a simple example that solves an NxN queens problem. You can run this example by simply typing: <br/> <code>java -jar javabdd_0.6.jar <i>N</i></code> <br/> where <code><i>N</i></code> is the size of the board (e.g. <code>8</code>). </p> </section> </body> </document> --- NEW FILE: performance.xml --- <?xml version="1.0"?> <document> <properties> <title>JavaBDD Performance Comparison</title> <author email="joe...@us...">John Whaley</author> </properties> <body> <section name="Performance Comparison"> <p> Here are the timings of solving the 12x12 NQueens problem on my home machine (2.4GHz P4, WinXP, Sun JDK 1.5.0b2). This test simply does simple logic operations. It primarily tests the speed of node creation and BDD garbage collection. The command line I used to test was: <br/> <code>java -ms320m -mx320m -Dbdd=<i>package</i> -jar javabdd_0.6.jar 12</code> <br/ <table border="2"> <tr> <td>Package </td> <td>Time </td> <td>Peak Memory Usage</td> </tr> <tr> <td>buddy </td> <td> 77s </td> <td> 150mb </td> </tr> <tr> <td>cudd </td> <td> 82s </td> <td> 171mb </td> </tr> <tr> <td>java -server </td> <td> 90s </td> <td> 155mb </td> </tr> <tr> <td>java -client </td> <td> 107s </td> <td> 155mb </td> </tr> </table> <p> Don't make any assumptions from these results about the relative efficiency of C and Java. The Java source code is a direct translation of the C source code, and therefore there are many, many inefficiencies that would not be present if it had been implemented from scratch in Java. At best, you could use this information as an example of the type of performance you would see if you directly translate a performance library written in C into Java. </p> </section> </body> </document> --- NEW FILE: compiling.xml --- <?xml version="1.0"?> <document> <properties> <title>Building JavaBDD</title> <author email="joe...@us...">John Whaley</author> </properties> <body> <section name="Building JavaBDD"> <p> If you have a supported system, it is easiest to just download one of the pre-built binaries. The native libraries have been optimized with the Intel compiler for maximum performance. Even if there is no pre-built binary for your system, the performance of the 100% Java implementation is still respectable. </p> <p> If you still want to build it yourself, you will first need the source code to the native library you want to interface to (BuDDy, CUDD, and/or CAL). They are available at the following locations: <ul> <li><a href="http://buddy.sourceforge.net">BuDDy</a></li> <li><a href="http://vlsi.colorado.edu/~fabio/CUDD/cuddIntro.html">CUDD</a></li> <li><a href="http://www-cad.eecs.berkeley.edu/Respep/Research/bdd/cal_bdd/">CAL</a></li> </ul> <a href="http://buddy.sourceforge.net">BuDDy</a> seems to have the best performance and is the most tested, so I recommend BuDDy. </p> <p> The easiest way to build is to use the supplied Makefile. (To build JavaBDD on Windows, you will need cygwin or mingw installed.) Grab the JavaBDD source code from CVS, and extract the BuDDy/CUDD/CAL native code. Edit the Makefile to specify the path where to find the native code. (The default in the Makefile is <code>buddy22/src</code> for BuDDy, <code>cudd-2.4.0</code> for CUDD, and <code>cal-2.1</code> for CAL.) It will automatically identify the path to the JDK, as long as you have it installed in the default location (C:/j2sdk* on Windows, /usr/java/j2sdk* on Linux). </p> <p> The default make target will build the jar file and the BuDDy native library. You can build the other native libraries by giving them as a make target (<code>libcudd.so</code> or <code>libcal.so</code>). Other useful make targets are "examples", "javadoc", "jar", "test", and "clean". Take a look at the Makefile for more information. </p> <p> You can also specify different compilers by setting the CC variable. In addition to <code>gcc</code>, the Makefile supports the Microsoft compiler (<code>cl</code>) and the Intel compiler (<code>icc on Linux, <code>icl</code> on Windows). </p> <p> If you manage to successfully compile JavaBDD for another system, please contribute your Makefile and/or any source patches. </p> </section> </body> </document> |