A grid-enabled asynchronous metamodel-assisted evolutionary algorithm for aerodynamic optimization

Abstract  A Grid-enabled asynchronous metamodel-assisted evolutionary algorithm is presented and assessed on a number of aerodynamic
shape optimization problems. An efficient way of implementing surrogate evaluation models or metamodels (art…

Abstract  A Grid-enabled asynchronous metamodel-assisted evolutionary algorithm is presented and assessed on a number of aerodynamic
shape optimization problems. An efficient way of implementing surrogate evaluation models or metamodels (artificial neural
networks) in the context of an asynchronous evolutionary algorithm is proposed. The use of metamodels relies on the inexact
pre-evaluation technique already successfully applied to synchronous (i.e. generation-based) evolutionary algorithms, which
needs to be revisited so as to efficiently cooperate with the asynchronous search method. The so-created asynchronous metamodel-assisted
evolutionary algorithm is further enabled for Grid Computing. The Grid deployment of the algorithm relies on three middleware
layers: GridWay, Globus Toolkit and Condor. Single- and multi-objective CFD-based designs of isolated airfoils and compressor cascades are handled using the proposed algorithm and the gain in CPU cost is demonstrated.

  • Content Type Journal Article
  • Pages 373-389
  • DOI 10.1007/s10710-009-9090-5
  • Authors
    • V. G. Asouti, National Technical University of Athens Parallel CFD & Optimization Unit, Lab. of Thermal Turbomachines, School of Mechanical Engineering P.O. Box 64069 Athens 15710 Greece
    • I. C. Kampolis, National Technical University of Athens Parallel CFD & Optimization Unit, Lab. of Thermal Turbomachines, School of Mechanical Engineering P.O. Box 64069 Athens 15710 Greece
    • K. C. Giannakoglou, National Technical University of Athens Parallel CFD & Optimization Unit, Lab. of Thermal Turbomachines, School of Mechanical Engineering P.O. Box 64069 Athens 15710 Greece

Distributed differential evolution with explorative–exploitative population families

Abstract  This paper proposes a novel distributed differential evolution algorithm, namely Distributed Differential Evolution with Explorative–Exploitative
Population Families (DDE-EEPF). In DDE-EEPF the sub-populations are grouped into tw…

Abstract  This paper proposes a novel distributed differential evolution algorithm, namely Distributed Differential Evolution with Explorative–Exploitative
Population Families (DDE-EEPF). In DDE-EEPF the sub-populations are grouped into two families. Sub-populations belonging to
the first family have constant population size, are arranged according to a ring topology and employ a migration mechanism
acting on the individuals with the best performance. This first family of sub-populations has the role of exploring the decision
space and constituting an external evolutionary framework. The second family is composed of sub-populations with a dynamic
population size: the size is progressively reduced. The sub-populations belonging to the second family are highly exploitative
and are supposed to quickly detect solutions with a high performance. The solutions generated by the second family then migrate
to the first family. In order to verify its viability and effectiveness, the DDE-EEPF has been run on a set of various test
problems and compared to four distributed differential evolution algorithms. Numerical results show that the proposed algorithm
is efficient for most of the analyzed problems, and outperforms, on average, all the other algorithms considered in this study.

  • Content Type Journal Article
  • Pages 343-371
  • DOI 10.1007/s10710-009-9089-y
  • Authors
    • Matthieu Weber, University of Jyväskylä Department of Mathematical Information Technology P.O. Box 35 (Agora) 40014 Jyväskylä Finland
    • Ferrante Neri, University of Jyväskylä Department of Mathematical Information Technology P.O. Box 35 (Agora) 40014 Jyväskylä Finland
    • Ville Tirronen, University of Jyväskylä Department of Mathematical Information Technology P.O. Box 35 (Agora) 40014 Jyväskylä Finland

Trace monoids with idempotent generators and measure-only quantum automata

Abstract  In this paper, we analyze a model of 1-way quantum automaton where only measurements are allowed (
MON
-1qfa). The automaton works on a compatibility alphabet

(S, E)
of observables and its probabilistic behavior is a formal ser…

Abstract  

In this paper, we analyze a model of 1-way quantum automaton where only measurements are allowed (
MON
-1qfa). The automaton works on a compatibility alphabet

(S, E)

of observables and its probabilistic behavior is a formal series on the free partially commutative monoid

FI(S, E)

with idempotent generators. We prove some properties of this class of formal series and we apply the results to analyze the
class

LMO(S, E)

of languages recognized by
MON
-1qfa’s with isolated cut point. In particular, we prove that

LMO(S, E)

is a boolean algebra of recognizable languages with finite variation, and that

LMO(S, E)

is properly contained in the recognizable languages, with the exception of the trivial case of complete commutativity.

  • Content Type Journal Article
  • DOI 10.1007/s11047-009-9154-8
  • Authors
    • Alberto Bertoni, Università degli Studi di Milano Dipartimento di Scienze dell’Informazione via Comelico 39 20135 Milano Italy
    • Carlo Mereghetti, Università degli Studi di Milano Dipartimento di Scienze dell’Informazione via Comelico 39 20135 Milano Italy
    • Beatrice Palano, Università degli Studi di Milano Dipartimento di Scienze dell’Informazione via Comelico 39 20135 Milano Italy

Deterministic and stochastic P systems for modelling cellular processes

Abstract  This paper presents two approaches based on metabolic and stochastic P systems, together with their associated analysis methods,
for modelling biological systems and illustrates their use through two case studies.

Content Type…

Abstract  

This paper presents two approaches based on metabolic and stochastic P systems, together with their associated analysis methods,
for modelling biological systems and illustrates their use through two case studies.

  • Content Type Journal Article
  • DOI 10.1007/s11047-009-9158-4
  • Authors
    • Marian Gheorghe, The University of Sheffield Department of Computer Science Regent Court, Portobello Street Sheffield S1 4DP UK
    • Vincenzo Manca, The University of Verona Department of Computer Science Strada Le Grazie 15 37134 Verona Italy
    • Francisco J. Romero-Campero, The University of Nottingham School of Computer Science Jubilee Campus Nottingham NG8 1BB UK

Robust self-assembly of graphs

Abstract  Self-assembly is a process in which small building blocks interact autonomously to form larger structures. A recently studied
model of self-assembly is the Accretive Graph Assembly Model whereby an edge-weighted graph is assembled …

Abstract  

Self-assembly is a process in which small building blocks interact autonomously to form larger structures. A recently studied
model of self-assembly is the Accretive Graph Assembly Model whereby an edge-weighted graph is assembled one vertex at a time
starting from a designated seed vertex. The weight of an edge specifies the magnitude of attraction (positive weight) or repulsion
(negative weight) between adjacent vertices. It is feasible to add a vertex to the assembly if the total attraction minus repulsion of the already built neighbors exceeds a certain threshold,
called the assembly temperature. This model naturally generalizes the extensively studied Tile Assembly Model. A natural question
in graph self-assembly is to determine whether or not there exists a sequence of feasible vertex additions to realize the
entire graph. However, even when it is feasible to realize the assembly, not much can be inferred about its likelihood of
realization in practice due to the uncontrolled nature of the self-assembly process. Motivated by this, we introduce the robust self-assembly problem where the goal is to determine if every possible sequence of feasible vertex additions leads to the
completion of the assembly. We show that the robust self-assembly problem is co-NP-complete even on planar graphs with two
distinct edge weights. We then examine the tractability of the robust self-assembly problem on a natural subclass of planar
graphs, namely grid graphs. We identify structural conditions that determine whether or not a grid graph can be robustly self-assembled,
and give poly-time algorithms to determine this for several interesting cases of the problem. Finally, we also show that the
problem of counting the number of feasible orderings that lead to the completion of an assembly is #P-complete.

  • Content Type Journal Article
  • DOI 10.1007/s11047-009-9149-5
  • Authors
    • Stanislav Angelov, Google, Inc. New York NY 10011 USA
    • Sanjeev Khanna, University of Pennsylvania Department of Computer and Information Science, School of Engineering and Applied Sciences Philadelphia PA 19104 USA
    • Mirkó Visontai, University of Pennsylvania Department of Mathematics, School of Arts and Sciences Philadelphia PA 19104 USA

Temporary storage for Meandre’s distributed flow execution

Designing the distributed execution of a generic Meandre flow involves several moving pieces. One of those is the temporary storage required by the computing nodes (think of it as one node as one isolated component of a flow) to keep up with the data generated by a component, and also be able to replicate such […]

Related posts:

  1. Easy, reliable, and flexible storage for Python
  2. ZooKeeper and distributed applications
  3. Meandre: Semantic-Driven Data-Intensive Flow Engine

Designing the distributed execution of a generic Meandre flow involves several moving pieces. One of those is the temporary storage required by the computing nodes (think of it as one node as one isolated component of a flow) to keep up with the data generated by a component, and also be able to replicate such storage to the node containing the consumer to be fed. Such storage, local to each node, must guarantee at least three basic properties.

  • Transaction ready
  • Light weight implementation
  • Efficient write and read to minimize the contention on ports

Also, it is important to keep in mind that in a distributed execution scenario, each node requires to have its one separated and standalone storage system. Thus, it is also important to minimize the overhead of installation and maintenance of such storage subsystem. There are several alternatives available ranging from traditional relational data base systems to home-brewed solutions. Relational data base systems provide a distributed, reliable, stable, and well tested environment, but they may tend to require a quite involved installation and maintenance. Also, tuning those systems to optimize performance may required quite an involved monitoring and tweaking. On the other hand, home-brewed solutions can be optimized for performance by dropping non required functionality and focussing on writing and reading performance. However, such solutions tend to be bug prone and tend to become time consuming, not to mention that proving transaction correctness can be quite involved.

Fortunately there is a middle ground where efficient and stable transaction aware solutions are available. They may not provide SQL interfaces, but they still provide transaction boundaries. Also, since they are oriented to maximize performance, they can provide better throughput and operation latency than having to traverse the SQL stack. Examples of such storage systems can be found under the areas of key-value stores and column stores. Several options were considered while writing these line, but key-value stores were the ones that better matches the three requirements described above. Several options were informally tested, including solutions like HDF and Berkely DB, however the best performing by far under similar stress test conditions as the sketched temporary storage subsystem was Tokyo Cabinet. I already introduced and tested Tokyo Cabinet more than a year ago, but this time I was going to give it a stress test to basically convince myself that that was what I wanted to use for as temporary storage of the distributed flow execution.

The experiment

Tokyo cabinet is a collection of storage utilities including, among other facilities, key-value stores implemented as hash files or B-trees and flexible column stores. To illustrate the performance and throughput you can achieve. To implement multiple queues on a single casket (Tokyo Cabinet file containing the data store) B-trees with duplicated keys can help achieving such goal. The duplicated keys are the queue names, and the values are the UUIDs of the objects being store. Objects are also stored in the same B-tree by using the UIUD as a key and the value become the payload to store (usually an array of bytes).

Previously, I have been heavily using Python bindings to test Tokyo Cabinet, but this time I went down the Java route (since the Meandre infrastructure is written on Java). The Java bindings are basically build around JNI and statically link to the C version of Tokyo Cabinet library, giving away the best of both world. To measure how fast can I write data out of a port into the local storage in a transactional mode, I used the following piece of code.

	public static void main ( String args [] ) {
		int MAX = 10000000;
		int inc = 10;
		int cnt = 0;
		float fa [] = new float[8];
		int reps = 10;
 
		for ( int i=1 ; i<=MAX ; i*=inc  ) {
			//System.out.println("Size: "+i);
			for ( int j=0 ; j<reps ; j++ ) {	
				//System.out.println("\tRepetition: "+j);
 
				// open the database
				BDB bdb = new BDB();
 
				if(!bdb.open(TEST_CASKET_TCB, BDB.OWRITER | BDB.OCREAT | BDB.OTSYNC )){
					int ecode = bdb.ecode();
					fail("open error: " + bdb.errmsg(ecode));
				}
 
				// Add a bunch of duplicates
				long start = System.currentTimeMillis();
				bdb.tranbegin();
				for ( int k=0; k<i; k++ ) {
					String uuid = UUID.randomUUID().toString();
					bdb.putdup(QUEUE_KEY, uuid);
					bdb.putdup(uuid.getBytes(), uuid.getBytes());	
				}
				bdb.trancommit();
				fa[cnt] += System.currentTimeMillis()-start;
 
				// Clean up
				bdb.close();
				new File(TEST_CASKET_TCB).delete();
			}
			fa[cnt] /= reps;
			System.out.println(""+i+"\t"+fa[cnt]+"\t"+(fa[cnt]/i));
			cnt++;
		}
	}

The idea is very simple. Just go and star storing 1, 10, 100, 1000, 10000, 1000000, and 10000000 pieces of data at once in a transaction. Measure the time. For each data number repeat the operation 10 times and average the time trying to palliate the fact that the experiment was run on a laptop running all sorts of other concurrent applications. Plot the results to illustrate:

  1. time required to insert one piece of data as a function of the number of data involve in the transaction
  2. number of pieces of data wrote per second as a function of the number of data involve in the transaction

The idea is to expose the behavior of Tokyo Cabinet as more data is involved in a transaction to check if degradation happens as the volume increase. This is an important issue, since data intensive flows can generate large volumes of data per firing event.

The results

Results are displayed on the figures below.

Time per data unit as a function of number of data involve in a transactionThroughput as a function of number of data in a transaction

The first important element to highlight is that the time to insert one data element does not degrade as the volume increase. Actually, it is quite interesting that Tokyo Cabinet feels more comfortable as the volume per transaction grows. The throughput results are also interesting, since it shows that it is able to sustain transfers of around 40K data units per second, and that the only bottleneck is the disk cache management and bandwidth to the disk itself—which gets saturated after pushing more than 10K pieces of data.

The lessons learned

Tokyo Cabinet is a excellent candidate to support the temporary transactional storage required in a distributed execution of a Meandre flow. Other alternatives like MySQL, embedded Apache Derby, the Java edition of Berkeley DB, SQLite JDBC could not get even get close to such performance falling at least one order of magnitude behind.

Related posts:

  1. Easy, reliable, and flexible storage for Python
  2. ZooKeeper and distributed applications
  3. Meandre: Semantic-Driven Data-Intensive Flow Engine

Deadline extended for Tenth Anniversary Special Issue on Progress in Genetic Programming and Evolvable Machines

The deadline has been extended for submissions to the Tenth Anniversary Special Issue on Progress in Genetic Programming and Evolvable Machines; see the call for papers for details.

The deadline has been extended for submissions to the Tenth Anniversary Special Issue on Progress in Genetic Programming and Evolvable Machines; see the call for papers for details.

On spiking neural P systems

Abstract  This work deals with several aspects concerning the formal verification of SN P systems and the computing power of some variants.
A methodology based on the information given by the transition diagram associated with an SN P system…

Abstract  

This work deals with several aspects concerning the formal verification of SN P systems and the computing power of some variants.
A methodology based on the information given by the transition diagram associated with an SN P system is presented. The analysis
of the diagram cycles codifies invariants formulae which enable us to establish the soundness and completeness of the system
with respect to the problem it tries to resolve. We also study the universality of asynchronous and sequential SN P systems
and the capability these models have to generate certain classes of languages. Further, by making a slight modification to
the standard SN P systems, we introduce a new variant of SN P systems with a special I/O mode, called SN P modules, and study their computing power. It is demonstrated that, as string language acceptors and transducers, SN P modules can
simulate several types of computing devices such as finite automata, a-finite transducers, and systolic trellis automata.

  • Content Type Journal Article
  • DOI 10.1007/s11047-009-9159-3
  • Authors
    • Oscar H. Ibarra, University of California Department of Computer Science Santa Barbara CA 93106 USA
    • Mario J. Pérez-Jiménez, University of Seville Department of Computer Science and AI Sevilla Spain
    • Takashi Yokomori, Waseda University Department of Mathematics, Faculty of Education and Integrated Arts and Sciences 1-6-1 Nishi-waseda, Shinjuku-ku Tokyo 169-8050 Japan

Computing with energy and chemical reactions

Abstract  Taking inspiration from some laws of Nature—energy transformation and chemical reactions—we consider two different paradigms
of computation in the framework of Membrane Computing. We first study the computational power of energ…

Abstract  

Taking inspiration from some laws of Nature—energy transformation and chemical reactions—we consider two different paradigms
of computation in the framework of Membrane Computing. We first study the computational power of energy-based P systems, a
model of membrane systems where a fixed amount of energy is associated with each object and the rules transform objects by
manipulating their energy. We show that if we assign local priorities to the rules, then energy-based P systems are as powerful
as Turing machines; otherwise, they can be simulated by vector addition systems, and hence are not universal. Then, we consider
stochastic membrane systems where computations are performed through chemical networks. We show how molecular species and
chemical reactions can be used to describe and simulate the functioning of Fredkin gates and circuits. We conclude the paper
with some research topics related to computing with energy-based P systems and with chemical reactions.

  • Content Type Journal Article
  • DOI 10.1007/s11047-009-9160-x
  • Authors
    • Alberto Leporati, Università degli Studi di Milano – Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Viale Sarca 336 20126 Milano Italy
    • Daniela Besozzi, Università degli Studi di Milano Dipartimento di Informatica e Comunicazione Via Comelico 39 20135 Milano Italy
    • Paolo Cazzaniga, Università degli Studi di Milano – Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Viale Sarca 336 20126 Milano Italy
    • Dario Pescini, Università degli Studi di Milano – Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Viale Sarca 336 20126 Milano Italy
    • Claudio Ferretti, Università degli Studi di Milano – Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Viale Sarca 336 20126 Milano Italy