Abstract

The last decade witnessed a great development of the structural and dynamic study of complex systems described as a network of elements. Therefore, systems can be described as a set of, possibly, heterogeneous entities or agents (the network nodes) interacting in, possibly, different ways (defining the network edges). In this context, it is of practical interest to model and handle not only static and homogeneous networks but also dynamic, heterogeneous ones. Depending on the size and type of the problem, these networks may require different computational approaches involving sequential, parallel or distributed systems with or without the use of disk-based data structures. In this work, we develop an Application Programming Interface (APINetworks) for the modeling and treatment of general networks in arbitrary computational environments. To minimize dependency between components, we decouple the network structure from its function using different packages for grouping sets of related tasks. The structural package, the one in charge of building and handling the network structure, is the core element of the system. In this work, we focus in this API structural component. We apply an object-oriented approach that makes use of inheritance and polymorphism. In this way, we can model static and dynamic networks with heterogeneous elements in the nodes and heterogeneous interactions in the edges. In addition, this approach permits a unified treatment of different computational environments. Tests performed on a C++11 version of the structural package show that, on current standard computers, the system can handle, in main memory, directed and undirected linear networks formed by tens of millions of nodes and edges. Our results compare favorably to those of existing tools. Program summaryProgram title: APINetworks 1.0Catalogue identifier: AEWZ_v1_0Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AEWZ_v1_0.htmlProgram obtainable from: CPC Program Library, Queen’s University, Belfast, N. IrelandLicensing provisions: Standard CPC licence, http://cpc.cs.qub.ac.uk/licence/licence.htmlNo. of lines in distributed program, including test data, etc.: 33736No. of bytes in distributed program, including test data, etc.: 541147Distribution format: tar.gzProgramming language: Standard ANSI C++11.Computer: Workstation.Operating system: Linux, Windows.Classification: 6.3.Nature of problem: The computational modeling and handling of complex systems, described as a network of interacting elements, is nowadays a topic of paramount importance. In the general case, it is necessary to represent static or dynamic, time dependent, sets of heterogeneous entities related through heterogeneous interactions. In turn, and depending on the size and nature of the problem, different computational approaches may be required. Thus, we can resort to sequential, parallel or distributed systems and to disk-based data structures. Different tools are available that satisfy one or several of these requirements. However, a unified approach for dealing with heterogeneous networks in arbitrary computational environments is still pending.Solution method: To address the above issues, we have developed an Application Programming Interface: APINetworks. The API is organized in several packages where the one responsible for the network structure acts as the core element. We resort to an object-oriented approach, that makes use of inheritance and polymorphism. In this way, we can model static and dynamic networks and include heterogeneous agents in the nodes and heterogeneous interactions in the edges. In addition, this approach permits a unified treatment, transparent to the user, of different computational environments: sequential, parallel, distributed, memory-based or disk-based.Running time: Examples provided take a few seconds each.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call