igraph-help
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [igraph] Running Igraph in parallel


From: Chris Wj
Subject: Re: [igraph] Running Igraph in parallel
Date: Sun, 25 Jan 2009 10:31:37 -0500

I have been doing some OpenMP research recently and I really think it would help igraph to use it. OpenMP allows you to ensure that variables are thread safe so you don't have to worry much about igraph's existing implementation. 
After reading some tutorials and writing a few examples, I have found it very easy to use and almost a no-brainer in many situations because of its simplicity. Also, all the major compilers support it. It is as simple as a header file and a compiler flag.

I found a few open source implementations of OpenMP graph calculations:
Python with C++ back-end: https://projects.forked.de/graph-tool/
C and OpenMP: https://sourceforge.net/projects/snap-graph/

Check the pubs here: http://www.graphanalysis.org/publications.html
Kamesh Madduri, and David A. Bader seem to have the most pubs on this topic.

The future of computing is MP and igraph is too good to not follow suit!

I'll help in any way I can. I just have to learn a lot more about igraph's internals to do anything and on first glance that looks like it will take a short while.

-Chris

True, this is also an option, just like many similar libraries,
eg. MPI implementations if you want to distribute jobs to
many machines. But it is still true that a single igraph
function will not run any faster.
Another issue might be if you go with openmp, that we never checked
that igraph is thread-safe. I think it is, most of the time,
but would not be 100% sure, e.g. the error handling might cause
problems.

Gabor

ps. please consider joining the list, otherwise i have to acknowledge
your mails by hand and this can cause delay. Thanks.

On Thu, May 29, 2008 at 11:07:11PM +0200, Walter de Back wrote:
> Hi,,
>
> If you're implementing in C/C++, you could use openMP to exploit
> multithreading
> (on a multi-core machine) to do various analysis tasks on your huge graph in
> parallel.
>
> I've made some simple openMP examples showing how to:
>
> - generate and analyse multiple graphs in parallel
> http://walter.deback.net/media/c/igraph_openmp1.c
>
> - do different analysis tasks on the same graph in parallel
> http://walter.deback.net/media/c/igraph_openmp2.c
>
> More on openMP:
> http://openmp.org
> https://computing.llnl.gov/tutorials/openMP/
> http://en.wikipedia.org/wiki/OpenMP
>
> Best,
> Walter
[...]






reply via email to

[Prev in Thread] Current Thread [Next in Thread]