100% found this document useful (1 vote)
42 views

Parallel Computers Architecture and Programming V. Rajaraman download

The document is a comprehensive overview of the book 'Parallel Computers: Architecture and Programming' by V. Rajaraman and C. Siva Ram Murthy, which serves as an introduction to parallel computing for undergraduate students and IT professionals. It covers various topics including the need for high-speed computing, parallel programming concepts, and the architecture of parallel computers. The book also discusses modern developments in multicore processors and cloud computing, along with practical applications and performance evaluation of parallel systems.

Uploaded by

wojnoessix3s
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
42 views

Parallel Computers Architecture and Programming V. Rajaraman download

The document is a comprehensive overview of the book 'Parallel Computers: Architecture and Programming' by V. Rajaraman and C. Siva Ram Murthy, which serves as an introduction to parallel computing for undergraduate students and IT professionals. It covers various topics including the need for high-speed computing, parallel programming concepts, and the architecture of parallel computers. The book also discusses modern developments in multicore processors and cloud computing, along with practical applications and performance evaluation of parallel systems.

Uploaded by

wojnoessix3s
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 54

Parallel Computers Architecture and Programming

V. Rajaraman download

https://textbookfull.com/product/parallel-computers-architecture-
and-programming-v-rajaraman/

Download more ebook from https://textbookfull.com


We believe these products will be a great fit for you. Click
the link to download now, or visit textbookfull.com
to discover even more!

Parallel Programming Concepts and Practice 1st Edition


Bertil Schmidt

https://textbookfull.com/product/parallel-programming-concepts-
and-practice-1st-edition-bertil-schmidt/

Parallel Programming with Co-Arrays Robert W. Numrich

https://textbookfull.com/product/parallel-programming-with-co-
arrays-robert-w-numrich/

Parallel programming for modern high performance


computing systems Czarnul

https://textbookfull.com/product/parallel-programming-for-modern-
high-performance-computing-systems-czarnul/

Programming Quantum Computers Essential Algorithms and


Code Samples 1st Edition Eric R. Johnston

https://textbookfull.com/product/programming-quantum-computers-
essential-algorithms-and-code-samples-1st-edition-eric-r-
johnston/
Fortran 2018 with Parallel Programming 1st Edition
Subrata Ray (Author)

https://textbookfull.com/product/fortran-2018-with-parallel-
programming-1st-edition-subrata-ray-author/

Digital Architecture Beyond Computers Fragments of a


Cultural History of Computational Design Roberto
Bottazzi

https://textbookfull.com/product/digital-architecture-beyond-
computers-fragments-of-a-cultural-history-of-computational-
design-roberto-bottazzi/

Mathematica Functional and procedural programming 2nd


Edition V. Aladjev

https://textbookfull.com/product/mathematica-functional-and-
procedural-programming-2nd-edition-v-aladjev/

Concurrency in C Cookbook Asynchronous Parallel and


Multithreaded Programming 2nd Edition Stephen Cleary

https://textbookfull.com/product/concurrency-in-c-cookbook-
asynchronous-parallel-and-multithreaded-programming-2nd-edition-
stephen-cleary/

Assembly Programming and Computer Architecture for


Software Engineers Brian Hall

https://textbookfull.com/product/assembly-programming-and-
computer-architecture-for-software-engineers-brian-hall/
PARALLEL COMPUTERS
Architecture and Programming
SECOND EDITION

V. RAJARAMAN
Honorary Professor
Supercomputer Education and Research Centre
Indian Institute of Science Bangalore
C. SIVA RAM MURTHY
Richard Karp Institute Chair Professor
Department of Computer Science and Engineering
Indian Institute of Technology Madras
Chennai

Delhi-110092
2016
PARALLEL COMPUTERS: Architecture and Programming, Second Edition
V. Rajaraman and C. Siva Ram Murthy

© 2016 by PHI Learning Private Limited, Delhi. All rights reserved. No part of this book may be reproduced in any form, by
mimeograph or any other means, without permission in writing from the publisher.
ISBN-978-81-203-5262-9

The export rights of this book are vested solely with the publisher.

Eleventh Printing (Second Edition) ... ... ... July, 2016

Published by Asoke K. Ghosh, PHI Learning Private Limited, Rimjhim House, 111, Patparganj Industrial Estate, Delhi-
110092 and Printed by Mohan Makhijani at Rekha Printers Private Limited, New Delhi-110020.
To
the memory of my dear nephew Dr. M.R. Arun
— V. Rajaraman
To
the memory of my parents, C. Jagannadham and C. Subbalakshmi
— C. Siva Ram Murthy
Table of Contents
Preface
1. Introduction
1.1 WHY DO WE NEED HIGH SPEED COMPUTING?
1.1.1 Numerical Simulation
1.1.2 Visualization and Animation
1.1.3 Data Mining
1.2 HOW DO WE INCREASE THE SPEED OF COMPUTERS?
1.3 SOME INTERESTING FEATURES OF PARALLEL COMPUTERS
1.4 ORGANIZATION OF THE BOOK
EXERCISES
Bibliography
2. Solving Problems in Parallel
2.1 UTILIZING TEMPORAL PARALLELISM
2.2 UTILIZING DATA PARALLELISM
2.3 COMPARISON OF TEMPORAL AND DATA PARALLEL PROCESSING
2.4 DATA PARALLEL PROCESSING WITH SPECIALIZED PROCESSORS
2.5 INTER-TASK DEPENDENCY
2.6 CONCLUSIONS
EXERCISES
Bibliography
3. Instruction Level Parallel Processing
3.1 PIPELINING OF PROCESSING ELEMENTS
3.2 DELAYS IN PIPELINE EXECUTION
3.2.1 Delay Due to Resource Constraints
3.2.2 Delay Due to Data Dependency
3.2.3 Delay Due to Branch Instructions
3.2.4 Hardware Modification to Reduce Delay Due to Branches
3.2.5 Software Method to Reduce Delay Due to Branches
3.3 DIFFICULTIES IN PIPELINING
3.4 SUPERSCALAR PROCESSORS
3.5 VERY LONG INSTRUCTION WORD (VLIW) PROCESSOR
3.6 SOME COMMERCIAL PROCESSORS
3.6.1 ARM Cortex A9 Architecture
3.6.2 Intel Core i7 Processor
3.6.3 IA-64 Processor Architecture
3.7 MULTITHREADED PROCESSORS
3.7.1 Coarse Grained Multithreading
3.7.2 Fine Grained Multithreading
3.7.3 Simultaneous Multithreading
3.8 CONCLUSIONS
EXERCISES
BIBLIOGRAPHY
4. Structure of Parallel Computers
4.1 A GENERALIZED STRUCTURE OF A PARALLEL COMPUTER
4.2 CLASSIFICATION OF PARALLEL COMPUTERS
4.2.1 Flynn’s Classification
4.2.2 Coupling Between Processing Elements
4.2.3 Classification Based on Mode of Accessing Memory
4.2.4 Classification Based on Grain Size
4.3 VECTOR COMPUTERS
4.4 A TYPICAL VECTOR SUPERCOMPUTER
4.5 ARRAY PROCESSORS
4.6 SYSTOLIC ARRAY PROCESSORS
4.7 SHARED MEMORY PARALLEL COMPUTERS
4.7.1 Synchronization of Processes in Shared Memory Computers
4.7.2 Shared Bus Architecture
4.7.3 Cache Coherence in Shared Bus Multiprocessor
4.7.4 MESI Cache Coherence Protocol
4.7.5 MOESI Protocol
4.7.6 Memory Consistency Models
4.7.7 Shared Memory Parallel Computer Using an Interconnection Network
4.8 INTERCONNECTION NETWORKS
4.8.1 Networks to Interconnect Processors to Memory or Computers to
Computers
4.8.2 Direct Interconnection of Computers
4.8.3 Routing Techniques for Directly Connected Multicomputer Systems
4.9 DISTRIBUTED SHARED MEMORY PARALLEL COMPUTERS
4.9.1 Cache Coherence in DSM
4.10 MESSAGE PASSING PARALLEL COMPUTERS
4.11 Computer Cluster
4.11.1 Computer Cluster Using System Area Networks
4.11.2 Computer Cluster Applications
4.12 Warehouse Scale Computing
4.13 Summary and Recapitulation
EXERCISES
BIBLIOGRAPHY
5. Core Level Parallel Processing
5.1 Consequences of Moore’s law and the advent of chip multiprocessors
5.2 A generalized structure of Chip Multiprocessors
5.3 MultiCore Processors or Chip MultiProcessors (CMPs)
5.3.1 Cache Coherence in Chip Multiprocessor
5.4 Some commercial CMPs
5.4.1 ARM Cortex A9 Multicore Processor
5.4.2 Intel i7 Multicore Processor
5.5 Chip Multiprocessors using Interconnection Networks
5.5.1 Ring Interconnection of Processors
5.5.2 Ring Bus Connected Chip Multiprocessors
5.5.3 Intel Xeon Phi Coprocessor Architecture [2012]
5.5.4 Mesh Connected Many Core Processors
5.5.5 Intel Teraflop Chip [Peh, Keckler and Vangal, 2009]
5.6 General Purpose Graphics Processing Unit (GPGPU)
EXERCISES
BIBLIOGRAPHY
6. Grid and Cloud Computing
6.1 GRID COMPUTING
6.1.1 Enterprise Grid
6.2 Cloud computing
6.2.1 Virtualization
6.2.2 Cloud Types
6.2.3 Cloud Services
6.2.4 Advantages of Cloud Computing
6.2.5 Risks in Using Cloud Computing
6.2.6 What has Led to the Acceptance of Cloud Computing
6.2.7 Applications Appropriate for Cloud Computing
6.3 CONCLUSIONS
EXERCISES
BIBLIOGRAPHY
7. Parallel Algorithms
7.1 MODELS OF COMPUTATION
7.1.1 The Random Access Machine (RAM)
7.1.2 The Parallel Random Access Machine (PRAM)
7.1.3 Interconnection Networks
7.1.4 Combinational Circuits
7.2 ANALYSIS OF PARALLEL ALGORITHMS
7.2.1 Running Time
7.2.2 Number of Processors
7.2.3 Cost
7.3 PREFIX COMPUTATION
7.3.1 Prefix Computation on the PRAM
7.3.2 Prefix Computation on a Linked List
7.4 SORTING
7.4.1 Combinational Circuits for Sorting
7.4.2 Sorting on PRAM Models
7.4.3 Sorting on Interconnection Networks
7.5 SEARCHING
7.5.1 Searching on PRAM Models
Analysis
7.5.2 Searching on Interconnection Networks
7.6 MATRIX OPERATIONS
7.6.1 Matrix Multiplication
7.6.2 Solving a System of Linear Equations
7.7 PRACTICAL MODELS OF PARALLEL COMPUTATION
7.7.1 Bulk Synchronous Parallel (BSP) Model
7.7.2 LogP Model
7.8 CONCLUSIONS
EXERCISES
BIBLIOGRAPHY
8. Parallel Programming
8.1 MESSAGE PASSING PROGRAMMING
8.2 MESSAGE PASSING PROGRAMMING WITH MPI
8.2.1 Message Passing Interface (MPI)
8.2.2 MPI Extensions
8.3 SHARED MEMORY PROGRAMMING
8.4 SHARED MEMORY PROGRAMMING WITH OpenMP
8.4.1 OpenMP
8.5 HETEROGENEOUS PROGRAMMING WITH CUDA AND OpenCL
8.5.1 CUDA (Compute Unified Device Architecture)
8.5.2 OpenCL (Open Computing Language)
8.6 PROGRAMMING IN BIG DATA ERA
8.6.1 MapReduce
8.6.2 Hadoop
8.7 CONCLUSIONS
EXERCISES
BIBLIOGRAPHY
9. Compiler Transformations for Parallel Computers
9.1 ISSUES IN COMPILER TRANSFORMATIONS
9.1.1 Correctness
9.1.2 Scope
9.2 TARGET ARCHITECTURES
9.2.1 Pipelines
9.2.2 Multiple Functional Units
9.2.3 Vector Architectures
9.2.4 Multiprocessor and Multicore Architectures
9.3 DEPENDENCE ANALYSIS
9.3.1 Types of Dependences
9.3.2 Representing Dependences
9.3.3 Loop Dependence Analysis
9.3.4 Subscript Analysis
9.3.5 Dependence Equation
9.3.6 GCD Test
9.4 TRANSFORMATIONS
9.4.1 Data Flow Based Loop Transformations
9.4.2 Loop Reordering
9.4.3 Loop Restructuring
9.4.4 Loop Replacement Transformations
9.4.5 Memory Access Transformations
9.4.6 Partial Evaluation
9.4.7 Redundancy Elimination
9.4.8 Procedure Call Transformations
9.4.9 Data Layout Transformations
9.5 FINE-GRAINED PARALLELISM
9.5.1 Instruction Scheduling
9.5.2 Trace Scheduling
9.5.3 Software Pipelining
9.6 Transformation Framework
9.6.1 Elementary Transformations
9.6.2 Transformation Matrices
9.7 PARALLELIZING COMPILERS
9.8 CONCLUSIONS
EXERCISES
BIBLIOGRAPHY
10. Operating Systems for Parallel Computers
10.1 RESOURCE MANAGEMENT
10.1.1 Task Scheduling in Message Passing Parallel Computers
10.1.2 Dynamic Scheduling
10.1.3 Task Scheduling in Shared Memory Parallel Computers
10.1.4 Task Scheduling for Multicore Processor Systems
10.2 PROCESS MANAGEMENT
10.2.1 Threads
10.3 Process Synchronization
10.3.1 Transactional Memory
10.4 INTER-PROCESS COMMUNICATION
10.5 MEMORY MANAGEMENT
10.6 INPUT/OUTPUT (DISK ARRAYS)
10.6.1 Data Striping
10.6.2 Redundancy Mechanisms
10.6.3 RAID Organizations
10.7 CONCLUSIONS
EXERCISES
BIBLIOGRAPHY
11. Performance Evaluation of Parallel Computers
11.1 BASICS OF PERFORMANCE EVALUATION
11.1.1 Performance Metrics
11.1.2 Performance Measures and Benchmarks
11.2 SOURCES OF PARALLEL OVERHEAD
11.2.1 Inter-processor Communication
11.2.2 Load Imbalance
11.2.3 Inter-task Synchronization
11.2.4 Extra Computation
11.2.5 Other Overheads
11.2.6 Parallel Balance Point
11.3 SPEEDUP PERFORMANCE LAWS
11.3.1 Amdahl’s Law
11.3.2 Gustafson’s Law
11.3.3 Sun and Ni’s Law
11.4 SCALABILITY METRIC
11.4.1 Isoefficiency Function
11.5 PERFORMANCE ANALYSIS
11.6 CONCLUSIONS
EXERCISES
BIBLIOGRAPHY
Appendix
Index
Preface

There is a surge of interest today in parallel computing. A general consensus is emerging


among professionals that the next generation of processors as well as computers will work in
parallel. In fact, all new processors are multicore processors in which several processors are
integrated in one chip. It is therefore essential for all students of computing to understand the
architecture and programming of parallel computers. This book is an introduction to this
subject and is intended for the final year undergraduate engineering students of Computer
Science and Information Technology. It can also be used by students of MCA who have an
elective subject in parallel computing. Working IT professionals will find this book very
useful to update their knowledge about parallel computers and multicore processors.
Chapter 1 is introductory and explains the need for parallel computers. Chapter 2 discusses
at length the idea of partitioning a job into many tasks which may be carried out in parallel by
several processors. The concept of job partitioning, allocating and scheduling and their
importance when attempting to solve problems in parallel is explained in this chapter. In
Chapter 3 we deal with instruction level parallelism and how it is used to construct modern
processors which constitute the heart of parallel computers as well as multicore processors.
Starting with pipelined processors (which use temporal parallelism), we describe superscalar
pipelined processors and multithreaded processors.
Chapter 4 introduces the architecture of parallel computers. We start with Flynn’s
classification of parallel computers. After a discussion of vector computers and array
processors, we present in detail the various implementation procedures of MIMD
architecture. We also deal with shared memory, CC-NUMA architectures, and the important
problem of cache coherence. This is followed by a section on message passing computers and
the design of Cluster of Workstations (COWs) and Warehouse Scale parallel computers used
in Cloud Computing.
Chapter 5 is a new chapter in this book which describes the use of “Core level parallelism”
in the architecture of current processors which incorporate several processors on one
semiconductor chip. The chapter begins by describing the develop-ments in both
semiconductor technology and processor design which have inevitably led to multicore
processors. The limitations of increasing clock speed, instruction level parallelism, and
memory size are discussed. This is followed by the architecture of multicore processors
designed by Intel, ARM, and AMD. The variety of multicore processors and their application
areas are described. In this chapter we have also introduced the design of chips which use
hundreds of processors.
Chapter 6 is also new. It describes Grid and Cloud Computing which will soon be used by
most organizations for their routine computing tasks. The circumstances which have led to
the emergence of these new computing environments, their strengths and weaknesses, and the
major differences between grid computing and cloud computing are discussed.
Chapter 7 starts with a discussion of various theoretical models of parallel computers such
as PRAM and combinational circuits, which aid in designing and analyzing parallel
algorithms. This is followed by parallel algorithms for prefix computation, sorting, searching,
and matrix operations. Complexity issues have been always kept in view while developing
parallel algorithms. It also presents some practical models of parallel computation such as
BSP, Multi-BSP, and LogP.
Chapter 8 is about programming parallel computers. It presents in detail the development
of parallel programs for message passing parallel computers using MPI, shared memory
parallel computers using OpenMP, and heterogeneous (CPU-GPU) systems using CUDA and
OpenCL. This is followed by a simple and powerful MapReduce programming model that
enables easy development of scalable parallel programs to process big data on large clusters
of commodity machines.
In Chapter 9 we show the importance of compiler transformations to effectively use
pipelined processors, vector processors, superscalar processors, multicore processors, and
SIMD and MIMD computers. The important topic of dependence analysis is discussed at
length. It ends with a discussion of parallelizing compilers.
Chapter 10 deals with the key issues in parallel operating systems—resource (processor)
management, process/thread management, synchronization mechanisms including
transactional memory, inter-process communication, memory management, and input/output
with particular reference to RAID secondary storage system.
The last chapter is on performance evaluation of parallel computers. This chapter starts
with a discussion of performance metrics. Various speedup performance laws, namely,
Amdahl’s law, Gustafson’s law and Sun and Ni’s law are explained. The chapter ends with a
discussion of issues involved in developing tools for measuring the performance of parallel
computers.
Designed as a textbook with a number of worked examples, and exercises at the end of
each chapter; there are over 200 exercises in all. The book has been classroom tested at the
Indian Institute of Science, Bangalore and the Indian Institute of Technology Madras,
Chennai. The examples and exercises, together with the References at the end of each
chapter, have been planned to enable students to have an extensive as well as an intensive
study of parallel computing.
In writing this book, we gained a number of ideas from numerous published papers and
books on this subject. We thank all those authors, too numerous to acknowledge individually.
Many of our colleagues and students generously assisted us by reading drafts of the book and
suggested improvements. Among them we thank Prof. S.K. Nandy and Dr. S. Balakrishnan
of Supercomputer Education and Research Centre, Indian Institute of Science, Bangalore,
Prof. Mainak Chaudhuri of IIT, Kanpur, and Arvind, Babu Shivnath, Bharat Chandra,
Manikantan, Rajkarn Singh, Sudeepta Mishra and Sumant Kowshik of Indian Institute of
Technology Madras, Chennai. We thank Ms. T. Mallika of Indian Institute of Science,
Bangalore, and Mr. S. Rajkumar, a former project staff member of Indian Institute of
Technology Madras, Chennai, for word processing.
The first author thanks the Director, and the Chairman, Supercomputer Education and
Research Centre, Indian Institute of Science, Bangalore, for providing the facilities for
writing this book. He also thanks his wife Dharma for proofreading the book and for her
support which enabled him to write this book. The second author thanks the members of his
family—wife Sharada, son Chandrasekhara Sastry and daughter Sarita—for their love and
constant support of his professional endeavors.
We have taken reasonable care in eliminating any errors that might have crept into the
book. We will be happy to receive comments and suggestions from readers at our respective
email addresses: [email protected], [email protected].
V. Rajaraman
C. Siva Ram Murthy
Introduction

Of late there has been a lot of interest generated all over the world on parallel processors and
parallel computers. This is due to the fact that all current micro-processors are parallel
processors. Each processor in a microprocessor chip is called a core and such a
microprocessor is called a multicore processor. Multicore processors have an on-chip
memory of a few megabytes (MB). Before trying to answer the question “What is a parallel
computer?”, we will briefly review the structure of a single processor computer (Fig. 1.1). It
consists of an input unit which accepts (or reads) the list of instructions to solve a problem (a
program) and data relevant to that problem. It has a memory or storage unit in which the
program, data and intermediate results are stored, a processing element which we will
abbreviate as PE (also called a Central Processing Unit (CPU)) which interprets and executes
instructions, and an output unit which displays or prints the results.

Figure 1.1 Von Neumann architecture computer.


This structure of a computer was proposed by John Von Neumann in the mid 1940s and is
known as the Von Neumann Architecture. In this architecture, a program is first stored in the
memory. The PE retrieves one instruction of this program at a time, interprets it and executes
it. The operation of this computer is thus sequential. At a time, the PE can execute only one
instruction. The speed of this sequential computer is thus limited by the speed at which a PE
can retrieve instructions and data from the memory and the speed at which it can process the
retrieved data. To increase the speed of processing of data one may increase the speed of the
PE by increasing the clock speed. The clock speed increased from a few hundred kHz in the
1970s to 3 GHz in 2005. Processor designers found it difficult to increase the clock speed
further as the chip was getting overheated. The number of transistors which could be
integrated in a chip could, however, be doubled every two years. Thus, processor designers
placed many processing “cores” inside the processor chip to increase its effective throughput.
The processor retrieves a sequence of instructions from the main memory and stores them in
an on-chip memory. The “cores” can then cooperate to execute these instructions in parallel.
Even though the speed of single processor computers is continuously increasing, problems
which are required to be solved nowadays are becoming more complex as we will see in the
next section. To further increase the processing speed, many such computers may be inter-
connected to work cooperatively to solve a problem. A computer which consists of a number
of inter-connected computers which cooperatively execute a single program to solve a
problem is called a parallel computer. Rapid developments in electronics have led to the
emergence of processors which can process over 5 billion instructions per second. Such
processors cost only around $100. It is thus possible to economically construct parallel
computers which use around 4000 such multicore processors to carry out ten trillion (1013)
instructions per second assuming 50% efficiency.
The more difficult problem is to perceive parallelism in algorithms and develop a software
environment which will enable application programs to utilize this potential parallel
processing power.
1.1 WHY DO WE NEED HIGH SPEED COMPUTING?
There are many applications which can effectively use computing speeds in the trillion
operations per second range. Some of these are:

Numerical simulation to predict the behaviour of physical systems.


High performance graphics—particularly visualization, and animation.
Big data analytics for strategic decision making.
Synthesis of molecules for designing medicines.

1.1.1 Numerical Simulation


Of late numerical simulation has emerged as an important method in scientific research and
engineering design complementing theoretical analysis and experimental observations.
Numerical simulation has many advantages. Some of these are:

1. Numerical modelling is versatile. A wide range of problems can be simulated on a


computer.
2. It is possible to change many parameters and observe their effects when a system is
modelled numerically. Experiments do not allow easy change of many parameters.
3. Numerical simulation is interactive. The results of simulation may be visualized
graphically. This facilitates refinement of models. Such refinement provides a
better understanding of physical problems which cannot be obtained from
experiments.
4. Numerical simulation is cheaper than conducting experiments on physical systems
or building prototypes of physical systems.

The role of experiments, theoretical models, and numerical simulation is shown in Fig.
1.2. A theoretically developed model is used to simulate the physical system. The results of
simulation allow one to eliminate a number of unpromising designs and concentrate on those
which exhibit good performance. These results are used to refine the model and carry out
further numerical simulation. Once a good design on a realistic model is obtained, it is used
to construct a prototype for experimentation. The results of experiments are used to refine the
model, simulate it and further refine the system. This repetitive process is used until a
satisfactory system emerges. The main point to note is that experiments on actual systems are
not eliminated but the number of experiments is reduced considerably. This reduction leads to
substantial cost saving. There are, of course, cases where actual experiments cannot be
performed such as assessing damage to an aircraft when it crashes. In such a case simulation
is the only feasible method.
Figure 1.2 Interaction between theory, experiments and computer simulation.
With advances in science and engineering, the models used nowadays incorporate more
details. This has increased the demand for computing and storage capacity. For example, to
model global weather, we have to model the behaviour of the earth’s atmosphere. The
behaviour is modelled by partial differential equations in which the most important variables
are the wind speed, air temperature, humidity and atmospheric pressure. The objective of
numerical weather modelling is to predict the status of the atmosphere at a particular region
at a specified future time based on the current and past observations of the values of
atmospheric variables. This is done by solving the partial differential equations numerically
in regions or grids specified by using lines parallel to the latitude and longitude and using a
number of atmospheric layers. In one model (see Fig. 1.3), the regions are demarcated by
using 180 latitudes and 360 longitudes (meridian circles) equally spaced around the globe. In
the vertical direction 12 layers are used to describe the atmosphere. The partial differential
equations are solved by discretizing them to difference equations which are in turn solved as
a set of simultaneous algebraic equations. For each region one point is taken as representing
the region and this is called a grid point. At each grid point in this problem, there are 5
variables (namely air velocity, temperature, pressure, humidity, and time) whose values are
stored. The simultaneous algebraic equations are normally solved using an iterative method.
In an iterative method several iterations (100 to 1000) are needed for each grid point before
the results converge. The calculation of each trial value normally requires around 100 to 500
floating point arithmetic operations. Thus, the total number of floating point operations
required for each simulation is approximately given by:
Number of floating point operations per simulation
= Number of grid points × Number of values per grid point × Number of trials × Number
of operations per trial
Figure 1.3 Grid for numerical weather model for the Earth.
In this example we have:
Number of grid points = 180 × 360 × 12 = 777600
Number of values per grid point = 5
Number of trials = 500
Number of operations per trial = 400
Thus, the total number of floating point operations required per simulation = 777600 × 5 ×
500 × 400 = 7.77600 × 1011. If each floating point operation takes 100 ns the total time taken
for one simulation = 7.8 × 104 s = 21.7 h. If we want to predict the weather at the intervals of
6 h there is no point in computing for 21.7 h for a prediction! If we want to simulate this
problem, a floating point arithmetic operation on 64-bit operands should be complete within
10 ns. This time is too short for a computer which does not use any parallelism and we need a
parallel computer to solve such a problem. In general the complexity of a problem of this
type may be described by the formula:
Problem complexity = G × V × T × A
where
G = Geometry of the grid system used
V = Variables per grid point
T = Number of steps per simulation for solving the problem
A = Number of floating point operations per step
For the weather modelling problem,
G = 777600, V = 5, T = 500 and A = 400 giving problem complexity = 7.8 × 1011.
There are many other problems whose complexity is of the order of 1012 to 1020. For
example, the complexity of numerical simulation of turbulent flows around aircraft wings and
body is around 1015. Some other areas where numerically intensive simulation is required
are:

Charting ocean currents


Exploring greenhouse effect and ozone depletion
Exploration geophysics, in particular, seismology
Simulation of fusion and fission reactions to design hydrogen and atomic devices
Designing complex civil and mechanical structures
Design of drugs by simulating the effect of drugs at the molecular level
Simulations in solid state and structural chemistry
Simulation in condensed matter physics
Analyzing data obtained from the large hadron collider experiment
Protein folding
Plate tectonics to forecast earthquakes

The range of applications is enormous and increasing all the time.


The use of computers in numerical simulation is one of the earliest applications of high
performance computers. Of late two other problems have emerged whose complexity is in the
range of 1015 to 1018 arithmetic operations. They are called petascale and exascale
computing. We describe them as follows:

1.1.2 Visualization and Animation


In visualization and animation, the results of computation are to be realistically rendered on a
high resolution terminal. In this case, the number of area elements where the picture is to be
rendered is represented by G. The number of picture elements (called pixels) to be processed
in each area element is represented by R and the time to process· a pixel by T. The
computation should be repeated at least 60 times a second for animation. Thus, GR pixels
should be processed in 1/60 s. Thus, time to process a pixel = 1/(60 × G × R). Typically G =
105, R = 107. Thus, a pixel should be processed within 10–14 s. If N instructions are required
to process a pixel then the computer should be able to carry out N × 1014 instructions per
second. In general the computational complexity in this case is:
G×R×P×N
where G represents the complexity of the geometry (i.e., number of area elements in the
picture), R the number of pixels per area element, P the number of repetitions per second (for
animation) and N the number of instructions needed to process a pixel. This problem has a
complexity exceeding 1015.
The third major application requiring intensive computation is data analytics or data
mining which we describe next.

1.1.3 Data Mining


There are large databases of the order of peta bytes (1015 bytes) which are in the data archives
of many organizations. Some experiments such as the Large Hadron Collider (LHC)
generates peta and exa bytes of data which are to be analyzed. With the availability of high
capacity disks and high speed computers, organizations have been trying to analyze data in
the data archive to discover some patterns or rules. Consumer product manufacturers may be
able to find seasonal trends in sales of some product or the effect of certain promotional
advertisements on the sale of related products from archival data. In general, the idea is to
hypothesize a rule relating data elements and test it by retrieving these data elements from the
archive. The complexity of this processing may be expressed by the formula:
PC = S × P × N
where S is the size of the database, P the number of instructions to be executed to check a
rule and N the number of rules to be checked. In practice the values of these quantities are:
S = 1015
P = 100, N = 10
giving a value of PC (Problem Complexity) of 1018. This problem can be solved effectively
only if a computer with speeds of 1015 instructions per second is available.
These are just three examples of compute intensive problems. There are many others
which are emerging such as realistic models of the economy, computer generated movies,
and video database search, which require computers which can carry out tens of tera
operations per second for their solution.
1.2 HOW DO WE INCREASE THE SPEED OF COMPUTERS?
There are two methods of increasing the speed of computers. One method is to build
processing elements using faster semiconductor components and the other is to improve the
architecture of computers using the increasing number of transistors available in processing
chips. The rate of growth of speed using better device technology has been slow. For
example, the basic clock of high performance processors in 1980 was 50 MHz and it reached
3 GHz by 2003. The clock speed could not be increased further without special cooling
methods as the chips got overheated. However, the number of transistors which could be
packed in a microprocessor continued to double every two years. In 1972, the number of
transistors in a microprocessor chip was 4000 and it increased to more than a billion in 2014.
The extra transistors available have been used in many ways. One method has put more than
one arithmetic unit in a processing unit. Another has increased the size of on-chip memory.
The latest is to place more than one processor in a microprocessor chip. The extra processing
units are called processing cores. The cores share an on-chip memory and work in parallel to
increase the speed of the processor. There are also processor architectures which have a
network of “cores”, each “core” with its own memory that cooperate to execute a program.
The number of cores has been increasing in step with the increase in the number of transistors
in a chip. Thus, the number of cores is doubling almost every two years. Soon (2015) there
will be 128 simple “cores” in a processor chip. The processor is one of the units of a
computer. As we saw at the beginning of this chapter, a computer has other units, namely,
memory, and I/O units. We can increase the speed of a computer by increasing the speed of
its units and also by improving the architecture of the computer. For example, while the
processor is computing, data which may be needed later could be fetched from the main
memory and simultaneously an I/O operation can be initiated. Such an overlap of operations
is achieved by using both software and hardware features.
Besides overlapping operations of various units of a computer, each processing unit in a
chip may be designed to overlap operations of successive instructions. For example, an
instruction can be broken up into five distinct tasks as shown in Fig. 1.4. Five successive
instructions can be overlapped, each doing one of these tasks (in an assembly line model)
using different parts of the CPU. The arithmetic unit itself may be designed to exploit
parallelism inherent in the problem being solved. An arithmetic operation can be broken
down into several tasks, for example, matching exponents, shifting mantissas and aligning
them, adding them, and normalizing. The components of two arrays to be added can be
streamed through the adder and the four tasks can be performed simultaneously on four
different pairs of operands thereby quadrupling the speed of addition. This method is said to
exploit temporal parallelism and will be explained in greater detail in the next chapter.
Another method is to have four adders in the CPU and add four pairs of operands
simultaneously. This type of parallelism is called data parallelism. Yet another method of
increasing the speed of computation is to organize a set of computers to work simultaneously
and cooperatively to carry out tasks in a program.
Figure 1.4 The tasks performed by an instruction and overlap of successive instructions.
All the methods described above are called architectural methods which are the ones
which have contributed to ten billions fold increase in the speed of computations in the last
two decades. We summarize these methods in Table 1.1.
TABLE 1.1 Architectural Methods Used to Increase the Speed of Computers

* use parallelism in a single processor computer


— Overlap execution of a number of instructions by pipelining, or by using multiple functional units, or multiple
processor “cores”.
— Overlap operation of different units of a computer.
— Increase the speed of arithmetic logic unit by exploiting data and/or temporal parallelism.
* use parallelism in the problem to solve it on a parallel computer.
— Use number of interconnected computers to work cooperatively to solve the problem.
1.3 SOME INTERESTING FEATURES OF PARALLEL COMPUTERS
Even though higher speed obtainable with parallel computers is the main motivating force for
building parallel computers, there are some other interesting features of parallel computers
which are not obvious but nevertheless important. These are:
Better quality of solution. When arithmetic operations are distributed to many computers,
each one does a smaller number of arithmetic operations. Thus, rounding errors are lower
when parallel computers are used.
Better algorithms. The availability of many computers that can work simultaneously leads
to different algorithms which are not relevant for purely sequential computers. It is possible
to explore different facets of a solution simultaneously using several processors and these
give better insight into solutions of several physical problems.
Better storage distribution. Certain types of parallel computing systems provide much
larger storage which is distributed. Access to the storage is faster in each computer. This
feature is of special interest in many applications such as information retrieval and computer
aided design.
Greater reliability. In principle a parallel computer will work even if a processor fails. We
can build a parallel computer’s hardware and software for better fault tolerance.
1.4 ORGANIZATION OF THE BOOK
This book is organized as follows. In the next chapter we describe various methods of solving
problems in parallel. In Chapter 3 we examine the architecture of processors and how
instruction level parallelism is exploited in the design of modern microprocessors. We
explain the structure of parallel computers and examine various methods of interconnecting
processors and how they influence their cooperative functioning in Chapter 4. This is
followed by a chapter titled Core Level Parallel Processing. With the improvement of
semiconductor technology, it has now become feasible to integrate several billion transistors
in an integrated circuit. Consequently a large number of processing elements, called “cores”,
may be integrated in a chip to work cooperatively to solve problems. In this chapter we
explain the organization of multicore processors on a chip including what are known as
General Purpose Graphics Processing Units (GPGPU). Chapter 6 is on the emerging area of
Grid and Cloud Computing. We explain how these computer environments in which
computers spread all over the world are interconnected and cooperate to solve problems
emerged and how they function. We also describe the similarities and differences between
grid and cloud computing. The next part of the book concentrates on the programming
aspects of parallel computers. Chapter 7 discusses parallel algorithms including prefix
computation algorithms, sorting, searching, and matrix algorithms for parallel computers.
These problems are natural candidates for use of parallel computers. Programming parallel
computers is the topic of the next chapter. We discuss methods of programming different
types of parallel machines. It is important to be able to port parallel programs across
architectures. The solution to this problem has been elusive. In Chapter 8 four different
explicit parallel programming models (a programming model is an abstraction of a computer
system that a user sees and uses when developing programs) are described. These are: MPI
for programming message passing parallel computers, OpenMP for programming shared
memory parallel computers, CUDA and OpenCL for programming GPGPUs, and
MapReduce programming for large scale data processing on clouds. Compilers for high level
languages are corner stones of computing. It is necessary for compilers to take cognizance of
the underlying parallel architecture. Thus in Chapter 9 the important topics of dependence
analysis and compiler transformations for parallel computers are discussed. Operating
Systems for parallel computers is the topic of Chapter 10. The last chapter is on the
evaluation of the performance of parallel computers.
EXERCISES
1.1 The website http://www.top500.org lists the 500 fastest computers in the world. Find
out the top 5 computers in this list. How many processors do each of them use and what
type of processors do they use?
1.2 LINPACK benchmarks that specify the speed of parallel computers for solving 1000 ×
1000 linear systems of equations can be found in the website http://
performance.netlib.org and are updated by Jack Dongarra at the University of
Tennessee, [email protected]. Look this up and compare peak speed of parallel
computers listed with their speed.
1.3 SPEC marks that specify individual processor’s performance are listed at the web site
http:// www.specbench.org. Compare the SPEC marks of individual processors of the
top 5 fastest computers (distinct processors) which you found from the website
mentioned in Exercise 1.1.
1.4 Estimate the problem complexity for simulating turbulent flows around the wings and
body of a supersonic aircraft. Assume that the number of grid points are around 1011.
1.5 What are the different methods of increasing the speed of computers? Plot the clock
speed increase of Intel microprocessors between 1975 and 2014. Compare this with the
number of transistors in Intel microprocessors between 1975 and 2014. From these
observations, can you state your own conclusions?
1.6 List the advantages and disadvantages of using parallel computers.
1.7 How do parallel computers reduce rounding error in solving numeric intensive
problems?
1.8 Are parallel computers more reliable than serial computers? If yes explain why.
1.9 Find out the parallel computers which have been made in India by CDAC, NAL, CRL,
and BARC by searching the web. How many processors are used by them and what are
the applications for which they are used?
BIBLIOGRAPHY
Barney, B., Introduction to Parallel Computing, Lawrence Livermore National Laboratory,
USA, 2011.
(A short tutorial accessible from the web).
Computing Surveys published by the Association for Computing Machinery (ACM), USA is
a rich source of survey articles about parallel computers.
Culler, D.E., Singh, J.P. and Gupta, A., Parallel Computer Architecture and Programming,
Morgan Kauffman, San Francisco, USA, 1999.
(A book intended for postgraduate Computer Science students has a wealth of information).
DeCegama, A.L., The Technology of Parallel Processing, Vol. l: Parallel Processing,
Architecture and VLSI Hardware, Prentice-Hall Inc., Englewood Cliffs, NJ, USA, 1989.
(A good reference for parallel computer architectures).
Denning, P.J., “Parallel Computing and its Evolution”, Communications of the ACM, Vol. 29,
No. 12, Dec. 1988, pp. 1363–1367.
Dubois, M., Annavaram, M., and Stenstrom, P., Parallel Computer Organization and Design,
Cambridge University Press, UK, 2010. (A good textbook).
Gama, A., Gupta, A., Karpys, G., and Kumar, V., An Introduction to Parallel Computing,
2nd ed., Pearson, Delhi, 2004.
Hennesy, J.L., and Patterson, D.A., Computer Architecture—A Quantitative Approach, 5th
ed., Morgan Kauffman-Elsevier, USA, 2012.
(A classic book which describes both latest parallel processors and parallel computers).
Hwang, K. and Briggs, F.A., Computer Architecture and Parallel Processing, McGraw-Hill,
New York, 1984.
(This is an 846 page book which gives a detailed description of not only parallel computers
but also high performance computer architectures).
Keckler, S.W., Kundle, O. and Hofstir, H.P., (Eds.), Multicore Processors and Systems,
Springer, USA, 2009.
(A book with several authors discussing recent developments in single chip multicore
systems).
Lipovski, G.J. and Malak, M., Parallel Computing: Theory and Practice, Wiley, New York,
USA, 1987.
(Contains descriptions of some commercial and experimental parallel computers).
Satyanarayanan, M., “Multiprocessing: An Annotated Bibliography,” IEEE Computer, Vol.
13, No. 5, May 1980, pp. 101–116.
Shen, J.P., and Lipasti, M.H., Modern Processor Design, Tata McGraw-Hill, Delhi, 2010.
(Describes the design of superscalar processors).
The Magazines: Computer, Spectrum and Software published by the Institute of Electrical
and Electronics Engineers (IEEE), USA, contain many useful articles on parallel
computing.
Wilson, G.V., “The History of the Development of Parallel Computing”, 1993.
webdocs.cs.ualberta.ca/~paullu/c681/parallel.time.line.html.
Solving Problems in Parallel

In this chapter we will explain with examples how simple jobs can be solved in parallel in
many different ways. The simple examples will illustrate many important points in perceiving
parallelism, and in allocating tasks to processors for getting maximum efficiency in solving
problems in parallel.
2.1 UTILIZING TEMPORAL PARALLELISM
Suppose 1000 candidates appear in an examination. Assume that there are answers to 4
questions in each answer book. If a teacher is to correct these answer books, the following
instructions may be given to him:
Procedure 2.1 Instructions given to a teacher to correct an answer book
Step 1: Take an answer book from the pile of answer books.
Step 2: Correct the answer to Q1 namely, A1.
Step 3: Repeat Step 2 for answers to Q2, Q3, Q4, namely, A2, A3, A4.
Step 4: Add marks given for each answer.
Step 5: Put answer book in a pile of corrected answer books.
Step 6: Repeat Steps 1 to 5 until no more answer books are left in the input.
A teacher correcting 1000 answer books using Procedure 2.1 is shown in Fig. 2.1. If a
paper takes 20 minutes to correct, then 20,000 minutes will be taken to correct 1000 papers.
If we want to speedup correction, we can do it in the following ways:

Figure 2.1 A single teacher correcting answer books.

Method 1: Temporal Parallelism


Ask four teachers to co-operatively correct each answer book. To do this the four teachers sit
in one line. The first teacher corrects answer to Q1, namely, A1 of the first paper and passes
the paper to the second teacher who starts correcting A2. The first teacher immediately takes
the second paper and corrects A1 in it. The procedure is shown in Fig. 2.2.

Figure 2.2 Four teachers working in a pipeline or assembly line.


Exploring the Variety of Random
Documents with Different Content
black, half-white, and to appear sometimes as a serpent. She often helps the
weary farmer to stack his corn, and sorely-tasked Cinderellas in their toil.

In pre-christian time this amiable goddess—called oftenest Bertha (shining) and


Mother Rose—was related to Wodan as the spring and summer to the storms of
winter, in which the Wild Huntsman’s procession no doubt originated. The
Northman’s experience of seed-time and harvest was expressed in the myth of
this sweet Rose hidden through the winter’s blight to rise again in summer. This
myth has many familiar variants, such as Aschenputtel and Sleeping Beauty; but
it was more particularly connected with the later legends of the White Lady, as
victim of the Wild Huntsman, by the stories of transformed princesses delivered
by youths. Rescue of the enchanted princess is usually effected by three kisses,
but she is compelled to appear before the deliverer in some hideous aspect—as
toad or serpent; so that he is repelled or loses courage. This is the rose hid under
the ugliness of winter.

When the storm-god Wodan was banished from nature altogether and identified
with the imported, and naturally inconceivable, Satan, he was no more regarded
as Frigga’s rough lord, but as her remorseless foe. She was popularly revered as
St. Walpurga, the original May Queen, and it was believed that happy and
industrious children might sometimes see her on May-day with long flowing
flaxen hair, fine shoes, distaff in hand, and a golden crown on her head. But for
the nine nights after May-day she was relentlessly pursued by the Wild
Huntsman and his mounted train. There is a picture by G. Watts of the hunted
lady of Bocaccio’s tale, now in the Cosmopolitan Club of London, which vividly
reproduces the weird impressiveness of this myth. The White Lady tries to hide
from her pursuer in standing corn, or gets herself bound up in a sheaf. The Wild
Huntsman’s wrath extends to all her retinue,—moss maidens of the wood, or
Holtzweibeln. The same belief characterises Waldemar’s hunt. It is a common
legend in Denmark that King Volmer rode up to some peasants, busy at harvest
on Sobjerg Hill, and, in reply to his question whether they had seen any game,
one of the men said—‘Something rustled just now in yonder standing corn.’ The
King rushed off, and presently a shot was heard. The King reappeared with a
mermaid lying across his horse, and said as he passed, ‘I have chased her a
hundred years, and have her at last.’ He then rode into the hill. In this way
Frigga and her little people, hunted with the wild creatures, awakened sympathy
for them.
The holy friar. Eckhardt (who may be taken as a myth and type of the Church ad
hoc) gained his legendary fame by being supposed to go in advance of the Wild
Huntsman and warn villagers of his approach; but as time went on and a
compromise was effected between the hunting Barons and the Church, on the
basis that the sports and cruelties should be paid for with indulgence-fees,
Eckhardt had to turn his attention rather to the White Lady. She was declared a
Wild Huntress, but the epithet slipped to other shoulders. The priests identified
her ultimately with Freija, or Frau Venus; and Eckhardt was the holy hermit who
warned young men against her sorceries in Venusberg and elsewhere. But
Eckhardt never prevailed against the popular love of Mother Rose as he had
against her pursuer; he only increased the attractions of ‘Frau Venus’ beyond her
deserts. In the end it was as much as the Church could do to secure for Mary the
mantle of her elder sister’s sanctity. Even then the earlier faith was not
eradicated. After the altars of Mary had fallen, Frigga had vitality enough to hold
her own as the White Witch who broke the Dark One’s spells. It was chiefly this
helpful Mother-goddess to whom the wretched were appealing when they were
burnt for witchcraft.

At Urselberg, Wurtemberg, there is a deep hole called the ‘Nightmaidens’


Retreat,’ in which are piled the innumerable stones that have been cast therein by
persons desiring good luck on journeys. These stones correspond to the bones of
the 11,000 Virgins in St. Ursula’s Church at Cologne. The White Lady was
sainted under her name of Ursel (the glowing one), otherwise Horsel.
Horselberg, near Eisenach, became her haunt as Venus, the temptress of
Tannhaüsers; Urselberg became her retreat as the good fairy mother; but the
attractions of herself and her moss-maidens, which the Church wished to
borrow, were taken on a long voyage to Rome, and there transmuted to St.
Ursula and her 11,000 Virgins. These Saints of Cologne encountered their
ancient mythical pursuers—the Wild Huntsman’s train—in those barbarian Huns
who are said to have slaughtered them all because they would not break their
vows of chastity. The legend is but a variant of Wodan’s hunt after the White
Lady and her maidens. When it is remembered that before her transformation by
Christianity Ursula was the Huntsman’s own wife, Frigga, a quaint incident
appears in the last meeting between the two. After Wodan had been transformed
to the Devil, he is said to have made out the architectural plan for Cologne
Cathedral, and offered it to the architect in return for a bond for his soul; but,
having weakly allowed him to get possession of the document before the bond
was signed, the architect drew from under his gown a bone of St. Ursula, from
which the Devil fled in great terror. It was bone of his bone; but after so many
mythological vicissitudes Wodan and his Horsel could hardly be expected to
recognise each other at this chance meeting in Cologne.

1 ‘Der deutsche Volksaberglaube der Gegenwart.’ Von Dr. Adolf Wuttke, Prof. der Theol. in
Halle. Berlin: Verlag von Wiegand & Grieben. 1869.
2 ‘Histoire de France et des Choses Mémorables,’ &c.
3 The universal myth of Sleepers,—christianised in the myth of St. John, and of the Seven
whose slumber is traceable as far as Tours,—had a direct pagan development in Jami,
Barbarossa, Arthur, and their many variants. It is the legend of the Castle of Sewingshields in
Northumberland, that King Arthur, his queen and court, remain there in a subterranean hall,
entranced, until some one should first blow a bugle-horn near the entrance hall, and then with
‘the sword of the stone’ cut a garter placed there beside it. But none had ever heard where the
entrance to this enchanted hall was, till a farmer, fifty years since, was sitting knitting on the
ruins of the castle, and his clew fell and ran downwards through briars into a deep subterranean
passage. He cleared the portal of its weeds and rubbish, and entering a vaulted passage, followed
the clew. The floor was infested with toads and lizards; and bats flitted fearfully around him. At
length his sinking courage was strengthened by a dim, distant light, which, as he advanced, grew
gradually brighter, till all at once he entered a vast and vaulted hall, in the centre of which a fire,
without fuel, from a broad crevice in the floor, blazed with a high and lambent flame, that
showed all the carved walls and fretted roof, and the monarch and his queen and court reposing
around in a theatre of thrones and costly couches. On the floor, beyond the fire, lay the faithful
and deep-toned pack of thirty couple of hounds; and on a table before it the spell-dissolving
horn, sword, and garter. The shepherd firmly grasped the sword, and as he drew it from its rusty
scabbard the eyes of the monarch and his courtiers began to open, and they rose till they sat
upright. He cut the garter, and as the sword was slowly sheathed the spell assumed its ancient
power, and they all gradually sank to rest; but not before the monarch had lifted up his eyes and
hands and exclaimed—
O woe betide that evil day
On which this witless wight was born,
Who drew the sword—the garter cut,
But never blew the bugle horn.
Terror brought on loss of memory, and the shepherd was unable to give any correct account of
his adventure, or to find again the entrance to the enchanted hall.—Hodgson’s
‘Northumberland.’
4 This great discussion between the animals and sages is given in ‘The Sacred Anthology’
(London: Trübner & Co. New York: Henry Holt & Co.). It is a very ancient story, and was
probably written down at the beginning of the christian era.
5 It is a strange proof of the ignorance concerning Hindu religion that Jugernath, raised in a
sense for reprobation of cruelty to man and beast, should have been made by a missionary myth
a Western proverb for human sacrifices!
6 St. Olaf = Stooley = Tooley.
7 High bloweth Heimdall
His horn aloft;
Odin consulteth
Mimir’s head;
The old ash yet standing
Yggdrasill
To its summit is shaken,
And loose breaks the giant.—Voluspa.
8 ‘Rigveda,’ x. 99.
9 ‘Zoolog. Myth.,’ ii. 8, 10, &c.
10 ‘The Mahawanso.’ Translated by the Hon. George Turnour, Ceylon, 1836, p. 69.
11 It was an ancient custom to offer a stag on the high altar of Durham Abbey, the sacrifice
being accompanied with winding of horns, on Holy Rood Day, which suggests a form of
propitiating the Wild Huntsman in the hunting season. On the Cheviot Hills there is a chasm
called Hen Hole, ‘in which there is frequently seen a snow egg at Midsummer, and it is related
that a party of hunters, while chasing a roe, were beguiled into it by fairies, and could never
again find their way out.’—Richardson’s ‘Borderer’s Table-Book,’ vi 400. The Bridled Devil of
Durham Cathedral may be an allusion to the Wild Huntsman.
Chapter XXVII.
Le Bon Diable.
The Devil repainted—Satan a divine agent—St. Orain’s heresy—Primitive
universalism—Father Sinistrari—Salvation of demons—Mediæval sects—Aquinas—
His prayer for Satan—Popular antipathies—The Devil’s gratitude—Devil defending
innocence—Devil against idle lords—The wicked ale-wife—Pious offenders punished
—Anachronistic Devils—Devils turn to poems—Devil’s good advice—Devil sticks to
his word—His love of justice—Charlemagne and the Serpent—Merlin—His prison of
Air—Mephistopheles in Heaven.

The phrase which heads this chapter is a favourite one in France. It may have
had a euphemistic origin, for the giants dreaded by primitive Europeans were too
formidable to be lightly spoken of. But within most of the period concerning
which we have definite knowledge such phrases would more generally have
expressed the half-contemptuous pity with which these huge beings with weak
intellects were regarded. The Devil imported with Christianity was made over,
as we have seen, into the image of the Dummeteufel, or stupid good-natured
giant, and he is represented in many legends which show him giving his gifts
and services for payments of which he is constantly cheated. Le Bon Diable in
France is somewhat of this character, and is often taken as the sign of tradesmen
who wish to represent themselves as lavishing their goods recklessly for
inadequate compensation. But the large accession of demons and devils from the
East through Jewish and Moslem channels, of a character far from stupid, gave a
new sense to that phrase and corresponding ones. There is no doubt that a very
distinct reaction in favour of the Devil arose in Europe, and one expressive of
very interesting facts and forces. The pleasant names given him by the masses
would alone indicate this,—Monsieur De Scelestat, Lord Voland, Blümlin
(floweret), Federspiel (gay-plumed), Maitre Bernard, Maitre Parsin (Parisian).

The Devil is not so black as he’s painted. This proverb concerning the long-
outlawed Evil One has a respectable antiquity, and the feeling underlying it has
by no means been limited to the vulgar. Even the devout George Herbert wrote

We paint the Devil black, yet he


Hath some good in him all agree.
Robert Burns naively appeals to Old Nick’s better nature—

But fare ye weel, auld Nickie-ben!


O wad ye tak a thought an’ men’!
Ye aiblins might—I dinna ken—
Still ha’e a stake;
I’m wae to think upon yon den,
E’en for your sake!

It is hard to destroy the natural sentiments of the human heart. However much
they may be overlaid by the transient exigencies of a creed, their indestructible
nature is pretty certain to reveal itself. The most orthodox supporters of divine
cruelty in their own theology will cry out against it in another. The saint who is
quite satisfied that the everlasting torture of Satan or Judas is justice, will look
upon the doom of Prometheus as a sign of heathen heartlessness; and the
burning of one widow for a few moments on her husband’s pyre will stimulate
merciful missionary ardour among millions of christians whose creed passes the
same poor victim to endless torture, and half the human race with her.

It is doubtful whether the general theological conception of the functions of


Satan is consistent with the belief that he is in a state of suffering. As an agent of
divine punishment he is a part of the divine government; and it is even probable
that had it not been for the necessity of keeping up his office, theology itself
would have found some means of releasing him and his subordinates from hell,
and ultimately of restoring them to heaven and virtue.1

It is a legend of the island Iona that when St. Columba attempted to build a
church there, the Devil—i.e., the same Druid magicians who tried to prevent his
landing there by tempests—threw down the stones as often as they were piled
up. An oracle declared that the church could arise only after some holy man had
been buried alive at the spot, and the saint’s friend Orain offered himself for the
purpose. After Orain had been buried, and the wall was rising securely, St.
Columba was seized with a strong desire to look upon the face of his poor friend
once more. The wall was pulled down, the body dug up; but instead of Orain
being found dead, he sat up and told the assembled christians around him that he
had been to the other world, and discovered that they were in error about various
things,—especially about Hell, which really did not exist at all. Outraged by this
heresy the christians immediately covered up Orain again in good earnest.
The resurrection of this primitive universalist of the seventh century, and his
burial again, may be regarded as typifying a dream of the ultimate restoration of
the universe to the divine sway which has often given signs of life through
christian history, though many times buried. The germ of it is even in Paul’s
hope that at last ‘God may be all in all’ (1 Cor. xv. 28). In Luke x. 17, also, it
was related that the seventy whom Jesus had sent out among the idol-
worshipping Gentiles ‘returned again with joy, saying, Lord, even the devils are
subject unto us through thy name.’ These ideas are recalled in various legends,
such as that elsewhere related of the Satyr who came to St. Anthony to ask his
prayers for the salvation of his demonic tribe. On the strength of Anthony’s
courteous treatment of that Satyr, the famous Consulteur of the Inquisition,
Father Sinistrari (seventeenth century), rested much of his argument that demons
were included in the atonement wrought by Christ and might attain final
beatitude. The Father affirmed that this was implied in Christ’s words, ‘Other
sheep I have which are not of this flock: them also I must bring, and they shall
hear my voice; and there shall be one fold and one shepherd’2 (John x. 16). That
these words were generally supposed to refer to the inclusion of the Gentile
world was not accepted by Sinistrari as impairing his argument, but the contrary.
He maintained with great ingenuity that the salvation of the Gentiles logically
includes the salvation of their inspiring demons, and that there would not be one
fold if these aerial beings, whose existence all authorities attested, were
excluded. He even intimates, though more timidly, that their father, Satan
himself, as a participator in the sin of Adam and sharer of his curse, may be
included in the general provision of the deity for the entire and absolute removal
of the curse throughout nature.

Sinistrari’s book was placed on the ‘Index Expurgatorius’ at Rome in 1709,


‘donec corrigatur,’ eight years after the author’s death; it was republished,
‘correctus,’ 1753. But the fact that such sentiments had occupied many devout
minds in the Church, and that they had reached the dignity of a consistent and
scholarly statement in theology, was proved. The opinion grew out of deeper
roots than New Testament phrases or the Anthony fables. The Church had been
for ages engaged in the vast task of converting the Gentile world; in the course
of that task it had succeeded only by successive surrenders of the impossible
principles with which it had started. The Prince of this World had been baptized
afresh with every European throne ascended by the Church. Asmodeus had
triumphed in the sacramental inclusion of marriage; St. Francis d’Assisi,
preaching to the animals, represented innumerable pious myths which had been
impossible under the old belief in a universal curse resting upon nature. The
evolution of this tendency may be traced through the entire history of the Church
in such sects as the Paulicians, Cathari, Bogomiles, and others, who, though they
again and again formulated anew the principle of an eternal Dualism, as often
revealed some further stage in the progressive advance of the christianised mind
towards a normal relation with nature. Thus the Cathari maintained that only
those beings who were created by the evil principle would remain unrecovered;
those who were created by God, but seduced by the Adversary, would be saved
after sufficient expiation. The fallen angels, they believed, were passing through
earthly, in some cases animal, bodies to the true Church and to heaven. Such
views as these were not those of the learned, but of the dissenting sects, and they
prepared ignorant minds in many countries for that revival of confidence in their
banished deities which made the cult of Witchcraft.

St. Thomas Aquinas, the ‘Angelical Doctor,’ in his famous work ‘Summa
Theologiæ,’ maintains that in the Resurrection the bodies of the redeemed will
rise with all their senses and organs, including those of sex, active and refined.
The authentic affirmation of that doctrine in the thirteenth century was of a
significance far beyond the comprehension of the Church. Aquinas confused the
lines between flesh and spirit, especially by admitting sex into heaven. The
Devil could not be far behind. The true interpretation of his doctrine is to be
found in the legend that Aquinas passed a night in prayer for the salvation and
restoration of the Devil. This legend is the subject of a modern poem so fraught
with the spirit of the mediæval heart, pining in its dogmatic prison, that I cannot
forbear quoting it here:—

All day Aquinas sat alone;


Compressed he sat and spoke no word,
As still as any man of stone,
In streets where never voice is heard;
With massive front and air antique
He sat, did neither move or speak,
For thought like his seemed words too weak.

The shadows brown about him lay;


From sunrise till the sun went out,
Had sat alone that man of grey,
That marble man, hard crampt by doubt;
Some kingly problem had he found,
Some new belief not wholly sound,
Some hope that overleapt all bound.

All day Aquinas sat alone,


No answer to his question came,
And now he rose with hollow groan,
And eyes that seemed half love, half flame.
On the bare floor he flung him down,
Pale marble face, half smile, half frown,
Brown shadow else, mid shadows brown.

‘O God,’ he said, ‘it cannot be,


Thy Morning-star, with endless moan,
Should lift his fading orbs to thee,
And thou be happy on thy throne.
It were not kind, nay, Father, nay,
It were not just, O God, I say,
Pray for thy Lost One, Jesus, pray!

‘How can thy kingdom ever come,


While the fair angels howl below?
All holy voices would be dumb,
All loving eyes would fill with woe,
To think the lordliest Peer of Heaven,
The starry leader of the Seven,
Would never, never, be forgiven.

‘Pray for thy Lost One, Jesus, pray!


O Word that made thine angel speak!
Lord! let thy pitying tears have way;
Dear God! not man alone is weak.
What is created still must fall,
And fairest still we frailest call;
Will not Christ’s blood avail for all?

‘Pray for thy Lost One, Jesus, pray!


O Father! think upon thy child;
Turn from thy own bright world away,
And look upon that dungeon wild.
O God! O Jesus! see how dark
That den of woe! O Saviour! mark
How angels weep, how groan! Hark, hark!

‘He will not, will not do it more,


Restore him to his throne again;
Oh, open wide that dismal door
Which presses on the souls in pain.
So men and angels all will say,
‘Our God is good.’ Oh, day by day,
Pray for thy Lost One, Jesus, pray!’

All night Aquinas knelt alone,


Alone with black and dreadful Night,
Until before his pleading moan
The darkness ebbed away in light.
Then rose the saint, and ‘God,’ said he,
‘If darkness change to light with thee,
The Devil may yet an angel be.’3

While this might be the feeling of devout philosophers whose minds were
beginning to form a conception of a Cosmos in which the idea of a perpetual
empire of Evil could find no place, the humble and oppressed masses, as we
have seen in the chapter on Witchcraft, were familiarising their minds with the
powers and glories of a Satan in antagonism to the deities and saints of the
Church. It was not a penitent devil supplicating for pardon whom they desired,
but the veritable Prince of the World, to whom as well as to themselves their
Christian oppressors were odious. They invested the Powers which the priests
pronounced infernal with those humanly just and genial qualities that had been
discarded by ecclesiastical ambition. The legends which must be interpreted in
this sense are very numerous, and a few of the most characteristic must suffice
us here. The habit of attributing every mishap to the Devil was rebuked in many
legends. One of these related that when a party were driving over a rough road
the waggon broke down and one of the company exclaimed, ‘This is a bit of the
Devil’s work!’ A gentleman present said, ‘It is a bit of corporation work. I don’t
believe in saddling the Devil with all the bad roads and bad axles.’ Some time
after, when this second speaker was riding over the same road alone, an old
gentleman in black met him, and having thanked him for his defence of the
Devil, presented him with a casket of splendid jewels. Very numerous are
legends of the Devil’s apparition to assist poor architects and mechanics unable
to complete their contracts, even carving beautiful church pillars and the like for
them, and this sometimes without receiving any recompense. The Devil’s
apparition in defence of accused innocence is a well-known feature of European
folklore. On one occasion a soldier, having stopped at a certain inn, confided to
the innkeeper some money he had for safe-keeping, and when he was about to
leave the innkeeper denied having received the deposit. The soldier battered
down the door, and the neighbours of the innkeeper, a prominent man in the
town, put him in prison, where he lay in prospect of suffering death for an
attempted burglary. The poor soldier, being a stranger without means, was
unable to obtain counsel to defend him. When the parties appeared before the
magistrate, a smart young lawyer, with blue hat and white feathers, unknown in
the town, volunteered to defend the soldier, and related the whole story with
such effect that the innkeeper in his excitement cried, ‘Devil take me if I have
the money!’ Instantly the smart lawyer spread his wings, and, seizing the
innkeeper, disappeared with him through the roof of the court-room. The
innkeeper’s wife, struck with horror, restored the money. In an Altmark version
of this story the Devil visits the prisoner during the previous night and asks for
his soul as fee, but the soldier refuses, saying he had rather die. Despite this the
Devil intervened. It was an old-time custom in Denmark for courts to sit with an
open window, in order that the Devil might more easily fly away with the
perjurer.

Always a democrat, the Devil is said in many stories to have interfered in favour
of the peasant or serf against the noble. On one occasion he relieved a certain
district of all its arrogant and idle noblemen by gathering them up in a sack and
flying away with them; but unhappily, as he was passing over the town of
Friesack, his sack came in collision with the church steeple, and through the hole
so torn a large number of noble lords fell into the town—which thence derived
its name—and there they remained to be patrons of the steeple and burthens on
the people.
Fig. 23.—The Wicked Ale-wife.

The Devil was universally regarded as a Nemesis on all publicans and ale-wives
who adulterated the beer they dealt out to the people, or gave short measures. At
Reetz, in Altmark, the legend of an ale-wife with whom he flew away is
connected with a stone on which they are said to have rested, and the villagers
see thereon prints of the Devil’s hoof and the woman’s feet. This was a favourite
theme of old English legends. The accompanying Figure (23), one of the
misereres in Ludlow parish church, Shropshire, represents the end of a wicked
ale-wife. A devil on one side reads the long list of her shortcomings, and on the
other side hell-mouth is receiving other sinners. A devil with bagpipe welcomes
her arrival. She carries with her only her fraudulent measure and the fashionable
head-dress paid for out of its wicked gains.

In a marionette performance which I witnessed at Tours, the accusations brought


against the tradesmen who cheated the people were such as to make one wish
that the services of some equally strict devil could be secured by the authorities
of all cities, to detect adulterators and dealers in false weights and measures. The
same retributive agency, in the popular interest, was ascribed to the Devil in his
attitude towards misers. There being no law which could reach men whose
hoarded wealth brought no good to themselves or others, such were deemed
proper cases for the interposition of the Devil. There is a significant contrast
between the legends favoured by the Church and those of popular origin. The
former, made prominent in frescoes, often show how, at the weighing of souls,
the sinner is saved by a saint or angel, or by some instance of service to the
Church being placed in the scale against the otherwise heavier record of evil
deeds. A characteristic legend is that which is the subject of the frescoes in the
portico of St. Lorenzo Church at Rome (thirteenth century). St. Lawrence sees
four devils passing his hermitage, and learns from them that they are going for
the soul of Henry II. In the next scene, when the wicked Count is weighed, the
scroll of his evil deeds far outweighs that of his good actions, until the Saint
casts into the scale a chalice which the prince had once given to his church. For
that one act Henry’s soul ascends to paradise amid the mortification of the
Devils. Though Charles Martel saved Europe from Saracen sway, he once
utilised episcopal revenues for relief of the state; consequently a synod declares
him damned, a saint sees him in hell, a sulphurous dragon issues from his grave.
On the other hand, the popular idea of the fate of distinguished sinners may be
found hid under misereres, where kings sometimes appear in Hell, and in the
early picture-books which contained a half-christianised folklore.

It has been observed that the early nature-deities, reflecting the evil and good of
nature, in part through the progress of human thought and ideality, and through
new ethnical rivalries, were degraded into demons. They then represented the
pains, obstructions, and fears in nature. We have seen that as these apparent
external evils were vanquished or better understood, the demons passed to the
inward nature, and represented a new series of pains, obstructions, and fears. But
these, too, were in part vanquished, or better understood. Still more, they so
changed their forms that the ancient demons-turned-devils were no longer
sufficiently expressive to represent them. Thus we find that the Jews,
mohammedans, and christians did not find their several special antagonists
impressively represented by either Satan, Iblis, or Beelzebub. Each, therefore,
personified its foe in accordance with later experiences—an Opponent called
Armillus, Aldajjail, Antichrist (all meaning the same thing), in whom all other
devils were merged.

As to their spirit; but as to their forms they shrank in size and importance, and
did duty in small ways. We have seen how great dragons were engaged in
frightening boys who fished on Sundays, or oppressive squires; how Satan
presided over wine-casks, or was adapted to the punishment of profanity; how
hosts of once tremendous fiends turned into the grotesque little forms which
Callot, truly copying the popular notions around him, painted as motley imps
disturbing monks at their prayers. Such diminutions of the devils correspond to a
parallel process among the gods and goddesses, by which they were changed to
‘little people’ or fairies. In both cases the transformation is an expression of
popular disbelief in their reality.

But revivals took place. The fact of evil is permanent; and whenever the old
chains of fear, after long rusting, finally break, there follows an insurrection
against the social and moral order which alarms the learned and the pious. These
see again the instigations of evil powers, and it takes form in the imagination of
a Dante, a Luther, a Milton. But when these new portraits of the Devil are
painted, it is with so much contemporary colouring that they do not answer to
the traditional devils preserved in folklore. Dante’s Worm does not resemble the
serpent of fable, nor does Milton’s Satan answer to the feathered clown of
Miracle Plays. Thus, behind the actual evils which beset any time, there stands
an array of grand diabolical names, detached from present perils, on which the
popular fancy may work without really involving any theory of Absolute Evil at
all. Were starry Lucifer to be restored to his heavenly sphere, he would be one
great brand plucked from the burning, but the burning might still go on.
Theology itself had filled the world with other devils by diabolising all the gods
and goddesses of rival religions, and the compassionate heart was thus left free
to select such forms or fair names as preserved some remnant of ancient majesty
around them, or some ray from their once divine halo, and pray or hope for their
pardon and salvation. Fallen foes, no longer able to harm, can hardly fail to
awaken pity and clemency.

With the picture of Dives and Lazarus presented elsewhere (vol. i. p. 281) may
be instructively compared the accompanying scene of a rich man’s death-bed
(Fig. 24), taken from ‘Ars Moriendi,’ one of the early block-books. This picture
is very remarkable from the suggestion it contains of an opposition between a
devil on the dying man’s right and the hideous dragon on his left. While the
dragon holds up a scroll, bidding him think of his treasure (Yntende thesauro),
the Devil suggests provision for his friends (Provideas amicis). This devil seems
to be a representative of the rich man’s relatives who stand near, and appears to
be supported by his ugly superior, who points towards hell as the penalty of not
making such provision as is suggested. There would appear to be in this picture
a vague distinction between the mere bestial fiend who tempts, and the ugly but
good-natured devil who punishes, and whom rich sinners cannot escape by
bequests to churches.

Fig. 24.—A Mediæval Death-bed.

One of the most notable signs of the appearance of ‘the good Devil’ was the
universal belief that he invariably stuck to his word. In all European folklore
there is no instance of his having broken a promise. In this respect his reputation
stands far higher than that of the christians, seeing that it was a boast of the
saints that, following the example of their godhead, who outwitted Satan in the
bargain for man’s redemption, they were continually cheating the Devil by
technical quibbles. There is a significant saying found among Prussian and
Danish peasants, that you may obtain a thing by calling on Jesus, but if you
would be sure of it you must call on the Devil! The two parties were judged by
their representatives.

One of the earliest legendary compacts with the Devil was that made by St.
Theophilus in the sixth century; when he became alarmed and penitent, the
Virgin Mary managed to trick Satan out of the fatal bond. The ‘Golden Legend’
of Jacobus de Voragine tells why Satan was under the necessity of demanding in
every case a bond signed with blood. ‘The christians,’ said Satan, ‘are cheats;
they make all sorts of promises so long as they want me, and then leave me in
the lurch, and reconcile themselves with Christ so soon as, by my help, they
have got what they want.’

Even apart from the consideration of possessing the soul, the ancient office of
Satan as legal prosecutor of souls transmitted, to the latest forms into which he
was modified, this character for justice. Many mediæval stories report his
gratitude whenever he is treated with justice, though some of these are disguised
by connection with other demonic forms. Such is the case with the following
romance concerning Charlemagne.

When Charlemagne dwelt at Zurich, in the house commonly called ‘Zum Loch,’
he had a column erected to which a bell was attached by a rope. Any one that
demanded justice could ring this bell when the king was at his meals. It
happened one day that the bell sounded, but when the servants went to look no
one was there. It continued ringing, so the Emperor commanded them to go
again and find out the cause. They now remarked that an enormous serpent
approached the rope and pulled it. Terrified, they brought the news to the
Emperor, who immediately rose in order to administer justice to beast as well as
man. After the reptile had respectfully inclined before the emperor, it led him to
the banks of the river and showed him, sitting upon its nest and eggs, an
enormous toad. Charlemagne having examined the case decided thus:—The toad
was condemned to be burnt and justice shown to the serpent. The verdict was no
sooner given than it was accomplished. A few days after the snake returned to
court, bowed low to the King, crept upon the table, took the cover from a gold
goblet standing there, dropped into it a precious stone, bowed again and crept
away. On the spot where the serpent’s nest had been, Charlemagne built a church
called ‘Wasserkelch.’ The stone he gave to his much-loved spouse. This stone
possessed the power of making the owner especially loved by the Emperor, so
that when absent from his queen he mourned and longed for her. She, well aware
that if it came into other hands the Emperor would soon forget her, put it under
her tongue in the hour of death. The queen was buried with the stone, but
Charlemagne could not separate himself from the body, so had it exhumed, and
for eighteen years carried it about with him wherever he went. In the meantime,
a courtier who had heard of the secret virtue of the stone, searched the corpse,
and at last found the stone hidden under the tongue, and took it away and
concealed it on his own person. Immediately the Emperor’s love for his wife
turned to the courtier, whom he now scarcely permitted out of his sight. At
Cologne the courtier in a fit of anger threw the stone into a hot spring, and since
then no one has succeeded in finding it. The love the Emperor had for the knight
ceased, but he felt himself wonderfully attracted to the place where the stone lay
hidden. On this spot he founded Aix-la-Chapelle, his subsequent favourite place
of residence.

It is not wonderful that the tradition should arise at Aix, founded by the human
hero of this romance, that the plan of its cathedral was supplied by the Devil; but
it is characteristic there should be associated with this legend an example of how
he who as a serpent was awarded justice by Charlemagne was cheated by the
priests of Aix. The Devil gave the design on condition that he was to have the
first who entered the completed cathedral, and a wolf was goaded into the
structure in fulfilment of the contract!

In the ancient myth and romaunt of ‘Merlin’ may be found the mediæval witness
to the diabolised religion of Britain. The emasculated saints of the South-east
could not satisfy the vigorous race in the North-west, and when its gods were
outlawed as devils they brought the chief of them back, as it were, had him duly
baptized and set about his old work in the form of Merlin! Here, side by side
with the ascetic Jesus, brought by Gatien and Augustin, was a Northern Christ,
son of an Arch-incubus, born of a Virgin, baptized in the shrunken Jordan of a
font, performing miracles, summoning dragons to his aid, overcoming Death and
Hell in his way, brought before his Pilate but confounding him, throning and
dethroning kings, and leading forth, on the Day of Pentecost, an army whose
knights are inspired by Guenever’s kisses in place of flaming tongues. How
Merlin ‘went about doing good,’ after the Northman’s ideal of such work; how
he saved the life of his unwedded mother by proving that her child (himself) was
begotten by a devil without her knowledge; how, as a child, he exposed at once
the pretension of the magistrate to high birth and the laxity of his lady and his
parson; how he humiliated the priestly astrologers of Vortigern, and prophesied
the destruction of that usurper just as it came to pass; how he served Uther
during his seven years’ reign, and by enabling him to assume the shape of the
Duke of Cornwall and so enjoy the embraces of the Duchess Igerna, secured the
birth of Arthur and hope of the Sangréal;4 how he defended Arthur’s legitimacy
of birth and assisted him in causing illegitimate births; and how at last he was
bound by his own spells, wielded by Vivien, in a prison of air where he now
remains;—this was the great mediæval gospel of a baptized christian Antichrist
which superseded the imported kingdom not of this world.

Fig. 25.—From the ‘Raree Show.’

Merlin was the Good Devil, but baptism was a fatal Vivien-spell to him. He still
dwells in all the air which is breathed by Anglo-Saxon men,—an ever-expanding
prison! Whether the Briton is transplanted in America, India, or Africa, he still
carries with him the Sermon on the Mount as inspired by his baptized Prince of
the Air, and his gospel of the day is, ‘If thine enemy hunger, starve him; if he
thirst, give him fire; if he hate you, heap melted lead on his head!’ Such remains
the soul of the greatest race, under the fatal spell of a creed that its barbarism
needs only baptism to be made holiness and virtue.

In the reign of George II., when Lord Bute and a Princess of easy virtue were
preying on England, and fanatical preachers were directing their donkeys to
heaven beside the conflagration of John Bull’s house, the eye of Hogarth at least
(as is shown in our Figure 25, from his ‘Raree Show’) was able to see what the
baptized Merlin had become in his realm of Air. The other worldly-Devil is
serpent-legged Hypocrisy. The Nineteenth Century has replaced Merlin by
Mephistopheles, the Devil who, despite a cloven foot, steps firmly on earth, and
means the power that wit and culture can bring against the baptized giant Force.
Him the gods fear not, even look upon with satisfaction. In the ‘Prologue in
Heaven,’ of Goethe’s ‘Faust,’ the Lord is even more gracious to Mephistopheles
than the Jehovah of Job was to Satan. ‘The like of thee have never moved my
hate,’ he says—

Man’s active nature, flagging, seeks too soon the level;


Unqualified repose he learns to crave;
Whence, willingly, the comrade him I gave,
Who works, excites, and must create, as Devil.

This is but a more modern expression of the rabbinical fable, already noted, that
when the first man was formed there were beside him two Spirits,—one on the
right that remained quiescent, another on the left who ever moved restlessly up
and down. When the first sin was committed, he of the left was changed to a
devil. But he still meant the progressive, inquiring nature of man. ‘The Spirit I,
that evermore denies,’ says the Mephistopheles of Goethe. How shall man learn
truth if he know not the Spirit that denies? How shall he advance if he know not
the Spirit of discontent? This restless spirit gains through his ignorance a cloven
hoof,—a divided movement, sometimes right, sometimes wrong. From his
selfishness it acquires a double tongue. But both hoof and serpent-tongue are
beneath the evolutional power of experience; they shall be humanised to the foot
that marches firmly on earth, and the tongue that speaks truth; and, the baptismal
spell broken, Merlin shall descend, bringing to man’s aid all his sharp-eyed
dragons transformed to beautiful Arts.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like