[erlang-patches] Erlang library for SNA (Social Network Analysis)

Thomas Messi Nguélé <>
Thu Sep 26 17:24:42 CEST 2013

Numerous complex systems such as social networks can be modeled using
graphs. Graphs used in social network mining are generally made up of
numerous nodes (Facebook 1.15 billion, YouTube 1 billion on September 2013)
and/or have very low densities. If the available architectures are not
efficiently exploited, certain algorithms (like katz score in links
prediction) will have very long execution times. However, the evolution of
architectures from mono-core through multi-cores to many-cores makes them
complex thus rendering difficult the task of writing programs to be run on
these machines.

In the quest for a language that can associate both ease-of-use and
efficiency, we start by proposing a DSL (Domain Specific Library) written
and embedded in Erlang. This DSL should facilitate the programming of
 algorithms (in social network mining for example) on multi-core and
many-core platforms such that writing parallel code on these platforms
should be an easy task.

In this patch (:messinguelethomas/otp.git, in dsl_graph.erl),
we give some functions that should be useful for a social network analyzer
(load_graph_gml, convert_csv_to_gml ...). We propose an extra-operator
(parallel_op) that helps him to easily write parallel code without
specifying messages and processes. We reuse the digraph module of erlang to
write our module.

We will be happy to know that the Erlang  community  will accept and
continue and extend this project: do social network analyzing with erlang.
Note that this kind of project is already implemented in Python. But
because of its GIL (Global Interpreter Lock), Python doesn't take advantage
to the available multi/many-core to reduce execution time.

Thomas Messi Nguélé.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-patches/attachments/20130926/24979a31/attachment.html>

More information about the erlang-patches mailing list