Erlang library for SNA (Social Network Analysis)
Thomas Messi Nguélé <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.patches |
|---|---|
| Message-ID | <CAEk1j12nmB36Yo3PBYOhwdaWVcgVGjagXmumQncmjw_ooWzuAQ@mail.gmail.com> |
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 ([email protected]: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é. _______________________________________________ erlang-patches mailing list [email protected] http://erlang.org/mailman/listinfo/erlang-patches