CUDA adn Graph Algorithms Graph theory algorithms and data structures using CUDA

Hi there,
We are working on algorithms utilizing Graph theory to develop metabolic and gene network pathways.

Although there are Java and C++ api’s such as the boost graph library, I was wondering if utilizing CUDA we could utilize some existing graph libraries.

Thanks, kenan.

Hi kenan,

I develop graph library on CUDA, Thrust Graph Library.

http://code.google.com/p/thrust-graph

TGL supports API’s like BGL, such as, vertex_iterator, edges( g), add_edge( u, v, g), and property_map.

But, the documents are still undeveloped…

thanks, drkkojima

Hi drkkojima,

that’s great. can i ask what led to writing this library. is it possible to use boost graph library algorithms/data structures under cuda.

thanks.

kenan.

Sorry for the late replies.

Of course! You can ask to me.

TGL supports only 2 BGL algorithms, breadth_first_search and generate_random_graph.

The internal data structure, vertices and edges, is device_vector of Thrust Library.

It is very simple.

If you want to implement some algorithms on GPU, you can access to vertices and edges from apis such as vertices(g, thrust::call_from_device_tag()), edges(g, thrust::call_from_device_tag()), and adjacenct_vertices( u, g, thrust::call_from_device_tag()) in kernel codes.

If you want to access vertices and edges from host code, the apis are verticrs(g) or vertices( gm thrust::call_from_host_tag()) so on.

TGL supplies sample codes, ex. breath_first_search.

Sorry for the late replies.

Of course! You can ask to me.

TGL supports only 2 BGL algorithms, breadth_first_search and generate_random_graph.

The internal data structure, vertices and edges, is device_vector of Thrust Library.

It is very simple.

If you want to implement some algorithms on GPU, you can access to vertices and edges from apis such as vertices(g, thrust::call_from_device_tag()), edges(g, thrust::call_from_device_tag()), and adjacenct_vertices( u, g, thrust::call_from_device_tag()) in kernel codes.

If you want to access vertices and edges from host code, the apis are verticrs(g) or vertices( gm thrust::call_from_host_tag()) so on.

TGL supplies sample codes, ex. breath_first_search.