Commit 2db0ee3d authored by Cianciosa, Mark's avatar Cianciosa, Mark
Browse files

Change the README to be a quick start guide that references the hosted documents.

parent 469c3b79
Loading
Loading
Loading
Loading
+15 −48
Original line number Diff line number Diff line
# graph_framework
# Quick Start Guide

Graph computation framework that supports auto differentiation.
graph_framework Graph computation framework that supports auto differentiation.
It is designed to allow domain scientists to create cross platform GPU 
accelerated code.

# Dependencies
This code makes use of the [NetCDF `C` library](https://www.unidata.ucar.edu/software/netcdf/).

On Macs, this requires the latest install of XCode 16.3.

# Compiling
To compile the code, first clone this repository.

A `graph_framework` directory will be created. In this directory create 
a `build` directory and navigate to it.

```
cd graph_framework
mkdir build
cd build
```

It's recommended that you use the `ccmake` to configure the build system. 
From inside the build directory, run the `ccmake` command
## Documentation
[graph_framework-docs](https://ornl-fusion.github.io/graph_framework-docs) Documentation for the graph_framework.

## Obtaining the Code
To get started clone this repository using the command.
```
ccmake ../
git clone https://github.com/ORNL-Fusion/graph_framework.git
```

Initally, there will be no options. Press the `c` key to configure. 
During this step, the LLVM software repo is cloned and configured. 
This may take a while. Once configured, there will be several options.

- On Linux systems, you may optionally use CUDA by toggling the `USE_CUDA` 
option.
- On Mac systems, you may optionally use Metal by toggling the `USE_METAL`
option. 

__NOTE__: On Macs using the default system compiler, you will need to change 
the `CMAKE_CXX_COMPILER` to `clang++`. To do this press the `t` to toggle
to the advanced options.

Once all the options are configured press the 'c' key again and a 
generate 'g' option will be available. Pressing the 'g' key will finish
generating the make file and close out `ccmake`.

One the makefile is created. The code can be built using `make` or 
optionally built in parallel using `make -j'_[number of parallel intances]_.

__NOTE__: To many parallel instances can cause the LLVM build system to
hang so it is recommended to limit these to less than 20 depending on
the available memory.

Unit tests can be run by the `make test` command. An example ray tracing
case can be found in `efit_example.sh` of the `graph_driver` directory.
## Compiling the Code
For instructions to build the code consult the 
[build system](https://ornl-fusion.github.io/graph_framework-docs/build_system.html)
documentation. This framework uses a [cmake](https://cmake.org) based build 
system and requires the [NetCDF-C](https://www.unidata.ucar.edu/software/netcdf/)
library.
+2 −0
Original line number Diff line number Diff line
@@ -400,6 +400,7 @@
		C7DC9EEF2E397BE600524F6F /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
		C7DC9EF12E3A688F00524F6F /* c_binding_test.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; path = c_binding_test.c; sourceTree = "<group>"; };
		C7DD87D32E664B440058BA66 /* code_structure.dox */ = {isa = PBXFileReference; lastKnownFileType = text; path = code_structure.dox; sourceTree = "<group>"; };
		C7DD87D42E665E260058BA66 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
		C7E134492A3CB3EC0083F6A7 /* output.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = output.hpp; sourceTree = "<group>"; };
		C7E5643E28A2A16F000F31A2 /* backend_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = backend_test; sourceTree = BUILT_PRODUCTS_DIR; };
		C7E5644A28A2A1C5000F31A2 /* dispersion_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = dispersion_test; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -638,6 +639,7 @@
			isa = PBXGroup;
			children = (
				C7931E7228073BFC0033B488 /* CMakeLists.txt */,
				C7DD87D42E665E260058BA66 /* README.md */,
				C79141AD22DA9C0600E0BA0D /* graph_framework */,
				C7931E6928073BCA0033B488 /* graph_tests */,
				C7DC9EE32E39768300524F6F /* graph_c_binding */,