The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
In this chapter we introduce the VLSI standard-cell placement problem. We discuss how this problem can be modeled as a graph problem, and present our implementation to read gate-level BLIF netlists on the PPE. A simple method of generating BLIF designs with random output cover is also shown, so that the reader can generate example designs. These BLIF designs are mapped using ABC [121] producing gate-level...
Once the circuit is available in the form of gate-level netlist, or even before at RTL if the area occupied by each block can be estimated or measured with some certainty alongwith the number of terminals required by each block, then the next step in completing the layout is to assign a specific shape to each block and arrange the blocks minimizing the total area of the chip. This problem of block...
In this chapter we discuss the Element Interconnect Bus (EIB) of the Cell Broadband Engine. We present the design of the EIB as a token-ring, managed communication path for transferring command and data amongst the CBEA components and IO. The EIB supports full memory-coherent and SMP operation. The EIB consists of four 16-byte-wide data rings. Each ring transfers 1 PPE cache line at a time. Each element...
We describe an efficient method of enumerating all (d;2d) polytopes, where d is the polytope dimension. To our knowledge, this is the first algorithm which produces all known polytopes with their f-vector representation. Our algorithm is based on key insights on the behavior of cutting plane and vertex separation phenomenon. We have implemented our algorithm (in serial as well as parallel versions)...
We address the problem of estimating the average switching activity in combinational digital CMOS circuits under random input sequences. We have used a probabilistic approach and have given a distributed implementation using PVM. We make use of the Parker-McCluskey heuristic and use bit-vector representation of Signal Probability Expressions to arrive at an efficient implementation. Experimental results...
Parallel programming deals with multi-processing and multi-threading. With the advent of multi-core computers, parallel programming has become essential. In this chapter we discuss the POSIX threading library (pthread). User annotated compiler supported parallelism with OpenMP is described with the help of examples in Section 12.2. The new features of OpenMP version 3.0 (task computing) is presented...
In this chapter we present several useful libraries and API which we could not categorize with any of the other libraries we presented in this part of the book. We first present the RPC (remote procedure call) library for remote invocation of predefined functions.We present a real-life example motivated from physical chemistry to use RPC for optimizing runtime using remote servers. In any discussion...
In this chapter we discuss the following (a) writing first application on the CELL Processor using native development tools, and gcc, (b) putting the PPC core through its paces, learning what it can, cannot do, (c) understanding EMT, integer performance, compiler capabilities, alignment, using disk, huge-memory page tables, Ethernet, (d) 32-bit and 64-bit development, memory management, (e) remote...
In this chapter we present several new utilities and programming examples. We solve the ab-initio structure determination problem with partial distance functions. Along the way we implement a complete OpenGL interface with picking, distributed Cell server for computation connected to a remote workstation for graphical viewing of the 3d structure. Moreover we use the simulated annealing framework to...
Most of the open-source mathematics software is built upon libraries which implement mathematical functions and computations. Since mathematics is an integral part of most scientific computing and research, it is to be expected that these libraries can also often be used in application software written by the reader. In this chapter we discuss some of the most popular mathematical libraries which...
In this chapter we describe open-source software for mathematics. We discuss Maxima, a general purpose symbolic math software system. GNU Octave which operates on matrices and can be used for signal processing functions. Statistical computing with R and PSPP is described, as well as number theory, group theory and graph isomorphism checking using PARI, and Nauty. The open-source math software Axiom,...
In this chapter we describe the many GUI libraries on GNU/Linux systems. These include, GTK, Qt, as well as wxWidget and Fox Toolkit. We present OpenGL through many examples, which also present GLUT, GLUI and show example of using OpenGL from within Python. Graphics rendering engines (OGRE) and OpenGL helper libraries are also discussed. In addition to 3d graphics, graphics layout are also available...
We describe the design and implementation of a novel SIMD data-parallel algorithm for real time SAR quick-look image generation using the Cell Broadband Engine as found in the consumer Playstation 3 gaming console. Our implementation of this chain on the CELL system processes 1 frame of image data, reading a 1024x3072 pixel of (simulated) RAW transmission data to produce 16-bit image data in 1.2 seconds...
We implement several data-structures and algorithms to solve programming problems which we shall use in the later chapters.We begin with writing integer programs to search for counterexamples of the Collatz conjecture. We analyze Barker sequences, calculate their merit factor.We implement factorial, gcd functions while discussing the properties of tail-recursive functions and how to implement them...
In this introductory part we describe the basic GNU/Linux system usage and the various tools and utilities which are used with it. In particular, the use of the GNU/Linux command-line, Bash shell scripting, and external programs such as find, tar etc. are explained. Secure communication tools OpenSSH and VNC are also described. Since open-source software is written using computer programming languages...
Although the purpose of computing is insight and not numbers1, nevertheless, numerical computation forms the bulk of high-performance parallel scientific computing. In this chapter we introduce methods and examples of math programs on the Cell Broadband Engine. Some of the examples use API libraries already described in Chapter 9, while some other are built from scratch. We discuss the needle method...
We address the problem of estimating the average switching activity in digital CMOS circuits under random input sequences. We have used the a probabilistic approach and have given an efficient implementation for the estimation of average switching activity. We make use of the Parker-McCluskey heuristic and use bit-vector representation of Signal Probability Expressions to arrive at an efficient implementation...
In this chapter we discuss the Direct Memory Access (DMA) functionality of the Cell architecture. Sender and receiver initiated DMA plays a significant role in program optimization. We present the DMA engine, fence and barrier concept for ordering data transfers. The DMA engine can be used as an additional data movement processor using dma-list. Double-buffering and SPE-to-SPE DMA is discussed in...
In this chapter we present engineering libraries such as Computer Vision, CImg and FWTools. Geospatial data abstractions are becoming very important with the rise of location aware computing, and several open-source tools such as GDAL and PROJ4 are described in this chapter. Image processing, audio processing, and computational fluid dynamics (CFD) have been part of many engineering applications....
In this chapter we discuss the problem of calculating line-of-sight (LOS) between objects located at different points of a given digital-elevation-model. This problem finds practical application in many areas of civil engineering, military tactical command and control, cellular operators, wind-turbine positioning and even ray-tracing. We describe the problem in its general terms, and model the DEM...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.