Professional Documents
Culture Documents
Full download High Performance Computing: Modern Systems and Practices Thomas Sterling file pdf all chapter on 2024
Full download High Performance Computing: Modern Systems and Practices Thomas Sterling file pdf all chapter on 2024
https://ebookmass.com/product/heterogeneity-high-performance-
computing-self-organization-and-the-cloud-1st-ed-edition-theo-
lynn/
https://ebookmass.com/product/high-performance-web-apps-with-
fastapi-the-asynchronous-web-framework-based-on-modern-
python-1st-edition-malhar-lathkar/
https://ebookmass.com/product/high-performance-web-apps-with-
fastapi-the-asynchronous-web-framework-based-on-modern-
python-1st-edition-malhar-lathkar-2/
https://ebookmass.com/product/high-leverage-practices-for-
inclusive-classrooms-1st-edition/
Systems Performance Enterprise and the Cloud Brendan
Gregg
https://ebookmass.com/product/systems-performance-enterprise-and-
the-cloud-brendan-gregg/
https://ebookmass.com/product/sports-society-and-technology-
bodies-practices-and-knowledge-production-1st-ed-2020-edition-
jennifer-j-sterling/
https://ebookmass.com/product/engineering-of-high-performance-
textiles-1st-edition-menghe-miao/
https://ebookmass.com/product/cloud-computing-concepts-
technology-security-and-architecture-second-edition-thomas-erl/
https://ebookmass.com/product/armstrongs-handbook-of-performance-
management-an-evidence-based-guide-to-delivering-high-
performance-ebook-pdf/
High Performance
Computing
Modern Systems and Practices
Thomas Sterling
Matthew Anderson
Maciej Brodowicz
School of Informatics, Computing, and Engineering
Indiana University, Bloomington
This textbook would not have been possible in either form or quality without the many contributions,
both direct and indirect, of a large number of friends and colleagues. It is derivative of first-year grad-
uate courses taught at both Louisiana State University (LSU) and Indiana University (IU). A number of
people contributed to these courses, including Chirag Dekate, Daniel Kogler, and Timur Gilmanov.
Amy Apon, a professor at the University of Arkansas, partnered with LSU and taught this course in
real time over the internet and helped to develop pedagogical material, including many of the exercises
used. Now at Clemson University, she continued this important contribution using her technical and
pedagogical expertise. Andrew Lumsdaine, then a professor at IU, cotaught the first version of this
course at IU. Amanda Upshaw was instrumental in the coordination of the process that resulted in
the final draft of the book, and directly developed many of the illustrations, graphics, and tables.
She was also responsible for the glossary of terms and acronyms. Her efforts are responsible in part
for the quality of this textbook.
A number of friends and colleagues provided guidance as the authors crafted early drafts of the book.
These contributions were of tremendous value, and helped improve the quality of content and form to be
useful for readers and students. David Keyes of KAUST reviewed and advised on Chapter 9 on parallel
algorithms. Jack Dongarra provided important feedback on Chapter 4 on benchmarking.
This textbook reflects decades of effort, research, development, and experience by uncounted num-
ber of contributors to the field of high performance computing. While not directly involved with the
creation of this text, many colleagues have contributed to the concepts, components, tools, methods,
and common practices associated with the broad context of high performance computing and its value.
Among these are Bill Gropp, Bill Kramer, Don Becker, Richard and Sarah Murphy, Jack Dongarra and
his many collaborators, Satoshi Matsuoka, Guang Gao, Bill Harrod, Lucy Nowell, Kathy Yelick, John
Shalf, John Salmon, and of course Gordon Bell. Thomas Sterling would like to acknowledge his thesis
advisor (at MIT) Bert Halstead for his mentorship to become the contributor that he has become.
Thomas Sterling also acknowledges Jorge Ucan, Amanda Upshaw, co-authors who made this book
possible, and especially Paul Messina who is his colleague, role model, mentor, and friend without
whom this book would never occurred. Matthew Anderson would like to thank Dayana Marvez, Oliver
Anderson, and Beltran Anderson. Maciej Brodowicz would like to thank his wife Yuko Prince Brodo-
wicz. The authors would like to thank Nate McFadden of Morgan-Kaufmann who provided enormous
effort, guidance, and patience that made this textbook possible.
xxvii
xxviii ACKNOWLEDGMENTS
To the fullest extent of the law, neither the Publisher nor the authors, contributors, or editors, assume any
liability for any injury and/or damage to persons or property as a matter of products liability, negligence or
otherwise, or from any use or operation of any methods, products, instructions, or ideas contained in the
material herein.
High Performance Computing is a needed follow-on to Becker and Sterling’s 1994 creation of the
Beowulf clusters recipe to build scalable high performance computers (also known as a supercomputers)
from commodity hardware. Beowulf enabled groups everywhere to build their own supercomputers.
Now with hundreds of Beowulf clusters operating worldwide, this comprehensive text addresses the crit-
ical missing link of an academic course for training domain scientists and engineersdand especially
computer scientists. Competence involves knowing exactly how to create and run (e.g., controlling,
debugging, monitoring, visualizing, evolving) parallel programs on the congeries of computational
elements (cores) that constitute today’s supercomputers.
Mastery of these ever-increasing, scalable, parallel computing machines gives entry into a compar-
atively small but growing elite, and is the authors’ goal for readers of the book. Lest the reader believes
the name is unimportant: the first conference in 1988 was the ACM/IEEE Supercomputing Confer-
ence, also known as Supercomputing 88; in 2006 the name evolved to the International Conference
on High Performance Computing, Networking, Storage, and Analysis, abbreviated SCXX. About
11,000 people attended SC16.
It is hard to describe a “supercomputer,” but I know one when I see one. Personally, I never pass up
a visit to a supercomputer having seen the first one in 1961dthe UNIVAC LARC (Livermore
Advanced Research Computer) at Lawrence Livermore National Laboratory, specified by Edward
Teller to run hydrodynamic simulations for nuclear weapons design. LARC consisted of a few dozen
cabinets of densely packed circuit board interconnected with a few thousand miles of wires and a few
computational units operating at a 100 kHz rate. In 2016 the largest Sunway Light supercomputer in
China operated a trillion times faster than LARC. It consists of over 10 million processing cores oper-
ating at a 1.5 GHz rate, and consumes 15 MW. The computer is housed in four rows of 40 cabinets,
containing 256 processing nodes. A node has four interconnected 8 MB processors, controlling 64 pro-
cessing elements or cores. Thus the 10.6 million processing elements deliver 125 peak petaflops, i.e.,
160 cabinets 256 physical nodes 4 computers (1 control þ 8 8) processing elements or cores
with a 1.31 PB memory (160 256 4 8 GB). Several of the Top 500 supercomputers have
O(10,000) computing nodes that connect and control graphic processing units (GPUs) with O(100)
cores. Today’s challenge for computational program developers is designing the architecture and
implementation of programs to utilize these megaprocessor computers.
From a user perspective, the “ideal high performance computer” has an infinitely fast clock,
executes a single instruction stream program operating on data stored in an infinitely large and fast
single-memory, and comes in any size to fit any budget or problem. In 1957 Backus established the
von Neumann programming model with Fortran. The first or “Cray” era of supercomputing from
the 1960s through the early 1990s saw the evolution of hardware to support this simple, easy-to-use
ideal by increasing processor speed, pipelining an instruction stream, processing vectors with a single
instruction, and finally adding processors for a program held in the single-memory computer. By the
early 1990s evolution of a single computer toward the ideal had stopped: clock speeds reached a few
GHz, and the number of processors accessing a single memory through interconnection was limited to
a few dozen. Still, the limited-scale, multiple-processor shared memory is likely to be the most
straightforward to program and use!
xix
xx FOREWORD
Fortunately, in the mid-1980s the “killer microprocessor” arrived, demonstrating cost effectiveness
and unlimited scaling just by interconnecting increasingly powerful computers. Unfortunately, this
multicomputer era has required abandoning both the single memory and the single sequential program
ideal of Fortran. Thus “supercomputing” has evolved from a hardware engineering design challenge of
the single (mono-memory) computer of the Seymour Cray era (1960e95) to a software engineering
design challenge of creating a program to run effectively using multicomputers. Programs first oper-
ated on 64 processing elements (1983), then 1000 elements (1987), and now 10 million (2016) pro-
cessing elements in thousands of fully distributed (mono-memory) computers in today’s
multicomputer era. So in effect, today’s high performance computing (HPC) nodes are like the super-
computers of a decade ago, as processing elements have grown 36% per year from 1000 computers in
1987 to 10 million processing elements (contained in 100,000 computer nodes).
High Performance Computing is the essential guide and reference for mastering supercomputing,
as the authors enumerate the complexity and subtleties of structuring for parallelism, creating, and
running these large parallel and distributed programs. For example, the largest climate models
simulate ocean, ice, atmosphere, and land concurrently created by a team of a dozen or more domain
scientists, computational mathematicians, and computer scientists.
Program creation includes understanding the structure of the collection of processing resources and
their interaction for different computers, from multiprocessors to multicomputers (Chapters 2 and 3),
and the various overall strategies for parallelization (Chapter 9). Other topics include synchronization
and message-passing communication among the parts of parallel programs (Chapters 7 and 8), addi-
tional libraries that form a program (Chapter 10), file systems (Chapter 18), long-term mass storage
(Chapter 17), and components for the visualization of results (Chapter 12). Standard benchmarks for
a system give an indication of how well your parallel program is likely to run (Chapter 4). Chapters 16
and 17 introduce and describe the techniques for controlling accelerators and special hardware cores,
especially GPUs, attached to nodes to provide an extra two orders of magnitude more processing per
node. These attachments are an alternative to the vector processing units of the Cray era, and typified
by the Compute Unified Device Architecture, or CUDA, model and standard to encapsulate
parallelism across different accelerators.
Unlike the creation, debugging, and execution of programs that run interactively on a personal
computer, smartphone, or within a browser, supercomputer programs are submitted via batch process-
ing control. Running a program requires specifying to the computer the resources and conditions for
controlling your program with batch control languages and commands (Chapter 5), getting the pro-
gram into a reliable and dependable state through debugging (Chapter 14), checkpointing, i.e., saving
intermediate results on a timely basis as insurance for the computational investment (Chapter 20), and
evolving and enhancing a program’s efficacy through performance monitoring (Chapter 13).
Chapter 21 concludes with a forward look at the problems and alternatives for moving supercom-
puters and the ability to use them to petascale and beyond. In fact, the only part of HPC not described
in this book is the incredible teamwork and evolution of team sizes for writing and managing HPC
codes. However, the most critical aspect of teamwork resides with the competence of the individual
members. This book is your guide.
Gordon Bell
October 2017
Index
‘Note: Page numbers followed by “f” indicate figures, “t” indicate tables, and “b” indicate boxes.’
677
678 INDEX
forwarding, 202 S
instruction-level parallelism, 201 sacct, 164e165
multithreading, 203 salloc, 160e161
reservation stations, 202 sbatch, 161e162
Profiling in distributed environments, 411e417, 414fe415f, Scalable library for eigenvalue problem computations, 328
417f Scalable linear algebra, 326
Programmability, HPC architecture, 48 Scalable linear solvers, 328e329
Programming Scaling, 18e19
concepts, 487e489 scancel, 163e164
environment, 476e477 Scatter, 269e271
interfaces, commodity clusters, 97e98 Scheduling, 355e357, 356f
high performance computing programming languages, Science, supercomputing impact on, 10e14
97 Scott, Steven, 35
parallel programming modalities, 97e98 Script components, SLURM job scripting, 166e167
Secondary storage
Q commodity clusters, 95
qdel, 180 management, 351
qstat, 180e182 Sections, OpenMP programming model, 239e240
job status query, 180e181 Security, supercomputing impact on, 10e14
queue status query, 181 Sequencer controller, 70
server status query, 182 Sequential data access, 555e556, 560
qsub, 174e179 Serial advanced technology attachment (SATA), 215e218
Quantum computing, 619e620 connectors, 216f
interface variants, 218f
Serial quicksort algorithm, 289f
R Shannon, Claude Elwood, 23
Redirection, Linux, 649e650
Shared neighbors, 581e582
Reduction
Shared-memory multiprocessors, 227f
OpenMP programming model, 244
HPC architecture, 74e76, 74f
operations, 274e276, 274t
Signal processing, 334e341
Redundant array of independent disks, 532f, 534e541
SIMD array class of parallel computer architecture, 69f
hybrid redundant array of independent disks variants,
Simple Linux Utility for Resource Management (SLURM)
539e541
cheat sheet, 171e172
RAID 0: striping, 534e535
job scripting, 166e171
RAID 1: mirroring, 535
concurrent applications, 167e169
RAID 2: bit-level striping with hamming code, 536
environment variables, 169e171
RAID 3: byte-level striping with dedicated parity, 536e537
MPI scripts, 167
RAID 4: block-level striping with dedicated parity, 537
OpenMP scripts, 167
RAID 5: block-level striping with single distributed parity,
script components, 166e167
538
scheduling, 149e150
RAID 6: block-level striping with dual distributed parity,
elastic computing, 150
539
gang scheduling, 149
Reliability, HPC architecture, 47e48
generic resources, 150
Remote access, Linux, 639e640
high-throughput computing, 150
Reservation stations, symmetric multiprocessor architecture,
preemption, 149e150
202
trackable resources, 150
Resource management, commodity clusters, 99e100
sinfo, 165e166
debugger, 101
Single directive, OpenMP programming model, 243
performance profiling, 101
Single-bit full adder, 66f
visualization, 101e104
Single-instruction
Running applications, commodity clusters, 113
multiple data architecture, 69e70
Runtime library routines, OpenMP programming model, 230
multiple data array, 33, 69e73
Runtime system software, 615
688 INDEX
Under Peter’s care the boy remained till the close of 1142, when,
as we have seen, he was sent to England in company with his uncle
Robert of Gloucester. Henry now entered upon a third phase of
education. For the next four years his uncle took charge of him and
kept him in his own household at Bristol under the care of one
Master Matthew, by whom he was to be “imbued with letters and
instructed in good manners, as beseemed a youth of his rank.”[1089]
This arrangement may have been due to the Empress, or it may
have originated with Geoffrey when he sent the boy over sea in the
earl’s company; for much as they differed in other matters, on the
subject of a boy’s training the two brothers-in-law could hardly fail to
be of the same mind. A well-balanced compound of soldier,
statesman and scholar was Earl Robert’s ideal no less than Count
Geoffrey’s; an ideal so realized in his own person that he might
safely be trusted to watch over its developement in the person of his
little nephew. As far as the military element was concerned, the earl
of Gloucester, with his matured experience and oft-proved valour,
was no less capable than the count of Anjou of furnishing a model of
all knightly prowess, skill and courtesy; and if Henry’s chivalry was to
be tempered with discretion—if it was to be regulated by a wise and
wary policy—if he was to acquire any insight into the principles of
sound and prudent state-craft—Robert was certainly, among the
group of adventurers who surrounded the Empress, the only man
from whom he could learn anything of the kind. The boy was indeed
scarce ten years old, and even for the heir of Anjou and England it
was perhaps somewhat too early to begin such studies as these. For
the literary side of his education, later years proved that Robert’s
choice of a teacher was as good as Geoffrey’s had been; the seed
sowed by Peter of Saintes was well watered by Matthew, and it
seems to have brought forth in his young pupil’s mind a harvest of
gratitude as well as of learning, for among the chancellors of King
Henry II. there appears a certain “Master Matthew” who can hardly
be any other than his old teacher.[1090]
[1093] Gerv. Cant. (Stubbs), vol. i. pp. 140, 141. Cf. Hen.
Hunt., l. viii. c. 29 (Arnold, p. 282). Joh. Hexh. (Raine), p. 159.
Rob. Torigni, a. 1149. The writer of Gesta Steph. (pp. 128, 129)
has a most romantic account of Henry’s adventures. Henry, he
says, came over with a very small force, and nothing to pay them
with except promises. He made an attempt upon Bourton and
Cricklade, and was repulsed; whereupon his troops all fell away
and left him so helpless that he was obliged to ask his mother for
some money. She had none to give him; he then asked his uncle
Gloucester, but the latter, “suis sacculis avide incumbens,”
refused. Then Henry in desperation appealed to the king,
beseeching his compassion for the sake of their kindred blood;
and Stephen at once sent him the needful sum. The trait is just
what might be expected in Stephen; but it is hard to conceive
Henry ever getting into such a plight; and the mention of Robert
of Gloucester as still alive shews there must be something wrong
in the story.
[1096] Joh. Hexh. (Raine), pp. 159, 160. Ralf had agreed to
give up his claims on Carlisle and accept instead the honour of
Lancaster for himself and the hand of one of David’s
granddaughters for his son; he promised on these conditions to
join David and Henry in an attack upon Lancaster, but was, as
usual, false to the tryst.
[1109] Ann. Winton. a. 1151 (Luard, Ann. Monast., vol. ii. pp.
54, 55).
[1111] Hist. Pontif. (Pertz, Mon. Germ. Hist., vol. xx.), p. 542.
[1114] Suger, Vita Ludov. (Rer. Gall. Scriptt., vol. xii.) p. 62.
Chron. Mauriniac. (ibid.) p. 83. Hist. Franc. (ibid.), p. 116. Ord.
Vit. as above. See also Besly, Comtes de Poitou, p. 137.
For Louis had now returned from Palestine;[1125] and so great was
his wrath at Geoffrey’s treatment of his favourite that he consented to
join Eustace in an attack upon the Norman duchy. Its defence was
left to its young duke, then busy with the siege of Torigni on the Vire,
held against him by his cousin Richard Fitz-Count—a son of Earl
Robert of Gloucester.[1126] Louis and Eustace marched upon
Arques; Henry led a force of Normans, Angevins and Bretons to
meet them; but his “older and wiser” barons averted a battle,[1127]
and nothing more came of the expedition. Geoffrey had never stirred
from his camp before Montreuil. Despite a formidable array of
engines,[1128] he made little progress; every breach made in the
walls by day was mended by night with oaken beams, of which the
besieged seemed to have a never-ending supply. Geoffrey was
characteristically taking counsel with his books as to the best method
of overcoming this difficulty when some monks of Marmoutier came
to him on an errand for their convent. One of them took up the book
which the count laid down— the treatise of Vegetius Renatus De Re
Militari, then, and long after, the standard work on military
engineering. It may have been some memory of bygone days when
he, too, had worn helm and hauberk instead of cowl and scapulary
that brought into the monk’s eyes a gleam which made Geoffrey
exclaim, “Stay with me till to-morrow, good brother, and what you are
now reading shall be put in action before you.” Next day a large red-
hot iron vessel filled with boiling oil was launched from the beam of a
mangonel against one of the timber insertions in the wall, and its
bursting set the whole place on fire.[1129] Gerald, his spirit broken at
last, came forth with his family and his garrison “like serpents
crawling out of a cave,” as a hostile chronicler says,[1130] and
surrendered to the mercy of the count, who sent him to prison at
Angers. The keep was razed at once, save one fragment of wall, left
by Geoffrey, and still standing at this hour, as a memorial of his
victory and of the skill and perseverance by which it had been won.
[1131]
[1129] Hist. Gaufr. Ducis (as above), pp. 286, 287. The monk is
called “frater G.” M. Marchegay suggests that he may have been
the “Gauterius Compendiensis,” monk of Marmoutier, whom the
writer names among his authorities in the Proœmium to his Hist.
Abbrev. (ib. p. 353). If so, this detailed account of the last scene
at the siege of Montreuil is due to an eye-witness.
The count of Anjou now moved northward to help his son against
the king. By the help of a brother of his old ally William Talvas he
gained possession of La Nue, a castle belonging to the king’s
brother Count Robert of Dreux.[1132] Louis and Robert avenged
themselves by burning the town of Séez. Presently after, in August,
Louis gathered together all his forces and brought them down the
Seine to a spot between Meulan and Mantes. Geoffrey and Henry
collected an opposing army on their side of the Norman border; but
an attack of fever detained the king in Paris, and a truce was made
until he should recover.[1133] The ostensible ground of the dispute
was Geoffrey’s treatment of Gerald of Montreuil, which certainly
seems to have been unjustly cruel. Not content with receiving his
unconditional surrender, razing his castle, and forcing him to make
full atonement to the injured monks of S. Aubin, Geoffrey still
persisted in keeping in prison not only Gerald himself but also his
whole family. The Pope anathematized him for his unchristianlike
severity;[1134] but anathemas usually fell powerless upon an Angevin
count. Geoffrey was in truth visiting upon Gerald his wrath at the
double-dealing of Gerald’s royal master; for he was well aware that
King Louis’s interference was prompted by far other motives than
disinterested sympathy for his seneschal. Louis was, according to
his wont, playing fast and loose with the rival claimants of Normandy,
in such shameless fashion that his own chief minister, Suger, had
been the first to reprove him in strong terms for his unwarrantable
attack upon the Angevins, had stood firmly by Geoffrey all through
the struggle, and was now endeavouring, through the mediation of
the count of Vermandois and the bishop of Lisieux, to baffle the
schemes of Eustace and his party and bring the king back to his old
alliance with Anjou.[1135]
[1137] Hist. Ludov., Rer. Gall. Scriptt., vol. xii. p. 127; Chron.
Reg. Franc. (ibid.), p. 213. Both these writers, however, tell an
apocryphal story of Louis, at Geoffrey’s and Henry’s request,
reconquering the duchy for them and receiving these
concessions in return for his help.
Geoffrey was but just entering his thirty-ninth year, and one can
hardly help speculating for a moment as to his plans for his own
future. For him, now that his work in the west was done, there was
no such brilliant opening in the east as there had been for Fulk V.
when he, too, in the prime of manhood, had chosen to make way for
a younger generation. But Geoffrey had begun public life at an
earlier age than either his father or his son; and he seems to have
had neither the moral nor the physical strength which had enabled
one Angevin count to carry on for half a century, without break and
without slackening, the work upon which he had entered before he
was fifteen, and to die in harness at the very crowning-point of his
activity and his success. Geoffrey Plantagenet was no Fulk Nerra; he
was not even a Fulk of Jerusalem; and he may well have been
weary of a political career which must always have been embittered
by a feeling that he was the mere representative of others, labouring
not for himself, hardly even for his country or his race, but only that
the one might be swallowed up in the vast dominions and the other
merged in the royal line of his ancestors’ Norman foe. He may have
seriously intended to pass the rest of his days among his books; or
he may have felt an inner warning that those days were to be very
few. With a perversity which may after all have been partly the effect
of secretly failing health, although he had now set Gerald at liberty
he still refused to acknowledge that he had treated him with unjust
severity, or to seek absolution from the Pope’s censure; and he even
answered with blasphemous words to the gentle remonstrances of
S. Bernard. “With what measure thou hast meted it shall be meted to
thee again” said the saint at last as he turned away; one of his
followers, more impetuous, boldly prophesied that Geoffrey would
die within a year. He did die within a fortnight.[1140] On his way home
from the king’s court,[1141] overcome with the heat, he plunged into a
river to cool himself;[1142] a fever was the consequence; he was
borne to Château-du-Loir, and there on September 7 he passed
away.[1143] His last legacy to his son was a piece of good advice,
given almost with his dying breath:—not to change the old customs
of the lands over which he was called to rule, whether by bringing
those of Normandy and England into Anjou, or by seeking to transfer
those of the Angevin dominions into the territories which he inherited
from his mother.[1144] Dying in the little border-fortress whence his
grandfather Elias had gone forth to liberate Maine, Geoffrey was
buried, by his own desire, not among his Angevin forefathers at
Tours or at Angers, but in his mother’s home at Le Mans.[1145] A
splendid tomb, bearing his effigy adorned with gold and gems, was
raised over his remains in the cathedral church,[1146] whence it has
disappeared to become a mere antiquarian curiosity in a museum.
Geoffrey’s sole surviving monument is the one which he made for
himself—the ruined, blackened fragment of his great ancestor’s keep
at Montreuil.
Stephen could not do what Geoffrey had done. His kingdom was
no mere fief to be passed from hand to hand by a formal ceremony
of surrender and investiture; the crowned and anointed king of
England could not so easily abdicate in favour of his son. He might
however do something to counterbalance Henry’s advancement by
obtaining a public recognition of Eustace as his heir. In Lent 1152,
therefore, he summoned a great council in London, at which all the
earls and barons swore fealty to Eustace.[1147] Still the king felt that
his object was far from being secured. He himself was a living proof
how slight was the worth of such an oath when the sovereign who
had exacted it was gone. There was, however, one further step
possible, a step without precedent in England, but one which the
kings of France had taken with complete success for several
generations past: the solemn coronation and unction of the heir to
the throne during his father’s lifetime. It was at this that Stephen had
aimed when he sent Archbishop Henry of York to Rome. He took an
unusually wise as well as a characteristically generous measure in
intrusting his cause to a reconciled enemy; nevertheless the attempt
failed. Pope Eugene by his letters absolutely forbade the primate to
make Eustace king; therefore, when Stephen called upon Theobald
and the other bishops to anoint and crown the youth, they one and
all refused. Father and son were both equally vexed and angry. They
shut up all the bishops in one house and tried to tease them into
submission. A few, remembering that “King Stephen never had loved
clerks,” and that it was not the first time he had cast bishops into
prison,[1148] were so frightened that they gave way; the majority
stood firm, and the primate himself escaped down the Thames in a
fishing-boat, made his way to Dover, and thence retreated beyond
sea.[1149] Without him there was nothing to be done, and of his
yielding there was no chance whatever; for close at his side stood
the real fount and source of the papal opposition—Thomas of
London.[1150]