Since the dawn of computing, the quest for a better understanding of Nature has been a driving force for technological development. Groundbreaking achievements by great scientists have paved the way from the abacus to the supercomputing power of today. When trying to replicate Nature in the computer’s silicon test tube, there is need...
This book constitutes the refereed proceedings of the 20th International Conference on Compiler Construction, CC 2011, held in Saarbrücken, Germany, March 26—April 3, 2011, as part of ETAPS 2011, the European Joint Conferences on Theory and Practice of Software. The 15 revised full papers presented together with the abstract of one...
Your CPU meter shows a problem. One core is running at 100 percent, but all the other cores are idle. Your application is CPU-bound, but you are using only a fraction of the computing power of your multicore system. Is there a way to get better performance?
The answer, in a nutshell, is parallel programming. Where you...
Genetic algorithms are founded upon the principle of evolution, i.e., survival of the fittest. Hence evolution programming techniques, based on genetic algorithms, are applicable to many hard optimization problems, such as optimization of functions with linear and nonlinear constraints, the traveling salesman problem, and problems of...
There is a software gap between hardware potential and the performance that can
be attained using today ’ s software parallel program development tools. The tools
need manual intervention by the programmer to parallelize the code. This book is
intended to give the programmer the techniques necessary to explore parallelism in...
Recent trends in computer architecture make concurrency and parallelism an essential ingredient of efficient program execution. The actor model of concurrency allows you to express real-world concurrency in a natural way using concurrent processes that communicate via asynchronous messages.
Scala is a programming language for the Java...
Parallel hardware has been ubiquitous for some time now. It’s difficult to find a laptop,
desktop, or server that doesn’t use a multicore processor. Beowulf clusters are
nearly as common today as high-powered workstations were during the 1990s, and
cloud computing could make distributed-memory systems as accessible as...
Expert PL/SQL Practices is a book of collected wisdom on PL/SQL programming from some of the best and the brightest in the field. Each chapter is a deep-dive into a specific problem, technology, or feature set that you’ll face as a PL/SQL programmer. Each author has chosen their topic out of the strong belief that what they...
Clustering is an important unsupervised classification technique where a set of patterns,
usually vectors in multidimensional space, are grouped into clusters based
on some similarity or dissimilarity criteria. In crisp clustering, each pattern is assigned
to exactly one cluster, whereas in fuzzy clustering, each pattern is given a...
The IBM Vienna Laboratory has made a significant contribution to the work on
the semantic description of computer systems. Both the operational semantics
descriptions ("VDL") and the later work on denotational semantics ("Meta-IV",
"VEM") contain interesting scientific ideas. Partly because of the large...
Parallel programming truly redefines the programming model for multicore architecture,
which has become commonplace. For this reason, parallel programming has been elevated to
a core technology in the Microsoft .NET Framework 4. In this version of the .NET Framework,
the Task Parallel Library (TPL) and the System.Threading.Tasks...
Why should a Java developer learn about functional programming (FP)? After all, hasn’t
functional programming been safely hidden in academia for decades? Isn’t objectoriented
programming (OOP) all we really need? This book explains why functional
programming has become an important tool for the challenges of our time and how...