-
Notifications
You must be signed in to change notification settings - Fork 3
jerrylam/GraphLab
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Graphlab -------- ======= License ======= GraphLab is free software licensed under the Apache 2.0 License. See license/LICENSE.txt for details. ============ Introduction ============ GraphLab is a graph-based, high performance, distributed computation framework written in C++. GraphLab Features: Unified multicore/ distributed API: write once run anywhere Tuned for performance: optimized C++ execution engine leverages extensive multi-threading and asynchronous IO Scalable: Run on large cluster deployments by intelligently placing data and computation HDFS Integration: Access your data directly from HDFS Powerful Machine Learning Toolkits: Tackle challenging machine learning problems with ease For more details on the GraphLab see http://graphlab.org, including documentation, tutorial, etc. ============ Dependencies ============ GraphLab now automatically satisfied most dependencies. There are however, a few dependencies which we cannot easily satisfy: On OS X: g++ (>= 4.2) or clang (>= 3.0) [Required] Required for compiling GraphLab. On Linux: g++ (>= 4.3) or clang (>= 3.0) [Required] Required for compiling GraphLab. *nix build tools: patch, make [Required] Should come with most Mac/Linux systems by default. Recent Ubuntu version will require to install the build-essential package. zlib [Required] Comes with most Mac/Linux systems by default. Recent Ubuntu version will require the zlib1g-dev package. Open MPI or MPICH2 [Strongly Recommended] Required for running GraphLab distributed. Incompatible with OpenMPI 1.5 and 1.6. JDK 6 or greater [Optional] Required for HDFS support Satisfying Dependencies on Mac OS X ------------------------------------ Installing XCode with the command line tools (in XCode 4.3 you have to do this manually in the XCode Preferences -> Download pane), satisfies all of these dependencies. Satisfying Dependencies on Ubuntu --------------------------------- All the dependencies can be satisfied from the repository: apt-get gcc g++ build-essential libopenmpi-dev \ default-jdk cmake zlib1g-dev mercurial ========= Compiling ========= ./configure In the graphlabapi directory, will create two sub-directories, release/ and debug/ . cd into either of these directories and running make will build the release or the debug versions respectively. Note that this will compile all of GraphLab, including all toolkits. Since some toolkits require additional dependencies (for instance, the Computer Vision toolkit needs OpenCV), this will also download and build all optional dependencies. We recommend using make’s parallel build feature to accelerate the compilation process. For instance: make -j 4 will perform up to 4 build tasks in parallel. When building in release/ mode, GraphLab does require a large amount of memory to compile with the heaviest toolkit requiring 1GB of RAM. Where K is the amount of memory you have on your machine in GB, we recommend not exceeding make -j K Alternatively, if you know exactly which toolkit you want to build, cd into the toolkit’s sub-directory and running make, will be significantly faster as it will only download the minimal set of dependencies for that toolkit. For instance: cd release/toolkits/graph_analytics make -j4 will build only the Graph Analytics toolkit and will not need to obtain OpenCV, Eigen, etc used by the other toolkits. ===================== Writing Your Own Apps ===================== There are two ways to write your own apps. 1: To work in the GraphLab source tree, (recommended) or 2: Install and link against Graphlab (not recommended) 1: Working in the GraphLab Source Tree --------------------------------------- This is the best option if you just want to try using GraphLab quickly. GraphLab uses the CMake build system which enables you to quickly create a c++ project without having to write complicated Makefiles. 1: Create your own sub-directory in the apps/ directory for example apps/my_app 2: Create a CMakeLists.txt in apps/my_app containing the following lines: project(GraphLab) add_graphlab_executable(my_app [List of cpp files space seperated]) Substituting the right values into the square brackets. For instance: project(GraphLab) add_graphlab_executable(my_app my_app.cpp) 4: Running "make" in the apps/ directory of any of the build directories should compile your app. If your app does not show up, try running cd [the GraphLab API directory] touch apps/CMakeLists.txt and try again. 2: Installing and Linking Against GraphLab ------------------------------------------- To install graphlab and use GraphLab this way will require your system to completely satisfy all remaining dependencies, which GraphLab normally builds automatically. This path is not extensively tested and is *not recommended* You will require the following additional dependencies - libevent (>=2.0.18) - libjson (>=7.6.0) - libboost (>=1.49) - libhdfs (required for HDFS support) - tcmalloc (optional) Follow the instructions in the [Compiling] section to build the release/ version of the library. Then cd into the release/ build directory and run make install . This will install the following: include/graphlab.hpp The primary GraphLab header include/graphlab/... The folder containing the headers for the rest of the GraphLab library lib/libgraphlab.a The GraphLab static library. Once you have installed GraphLab you can compile your program by running: g++ -pthread -lz -ltcmalloc -levent -levent_pthread -ljson \ -lboost_filesystem -lboost_program_options -lboost_system \ -lboost_iostreams -lboost_date_time -lhdfs -lgraphlab hello_world.cpp
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published