High Performance Computing: Modern Systems and Practices 1st Edition - Ebook PDF Download
High Performance Computing: Modern Systems and Practices 1st Edition - Ebook PDF Download
https://ebookluna.com/download/high-performance-computing-modern-
systems-and-practices-ebook-pdf/
https://ebookluna.com/download/engineering-of-high-performance-
textiles-ebook-pdf/
ebookluna.com
https://ebookluna.com/product/ebook-pdf-regression-linear-modeling-
best-practices-and-modern-methods/
ebookluna.com
https://ebookluna.com/product/ebook-pdf-modern-blood-banking-
transfusion-practices-7th-edition/
ebookluna.com
https://ebookluna.com/product/ebook-pdf-effective-training-systems-
strategies-and-practices-5th-edition/
ebookluna.com
(eBook PDF) Performance Management Systems: An
Experiential Approach
https://ebookluna.com/product/ebook-pdf-performance-management-
systems-an-experiential-approach/
ebookluna.com
https://ebookluna.com/download/high-performance-tubular-protonic-
ceramic-fuel-cells-via-highly-scalable-extrusion-process-ebook-pdf/
ebookluna.com
https://ebookluna.com/product/ebook-pdf-modern-systems-analysis-and-
design-9th-edition/
ebookluna.com
https://ebookluna.com/product/ebook-pdf-modern-digital-and-analog-
communication-systems-4th/
ebookluna.com
https://ebookluna.com/product/ebook-pdf-modern-systems-analysis-and-
design-8th-valacich/
ebookluna.com
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
xxi
xxii PREFACE
of this distinction is that while much of the knowledge about this rapidly evolving field will change,
and even become obsolete in some cases, the basic concepts offered are invariant with time and will
serve the reader with strong long-term understanding even as the details of some specific machine or
language may become largely irrelevant over time.
This textbook is organized first according to the four separate models of parallel computation, and
then for each model according to the underlying concepts, the relevant knowledge with an emphasis on
system architectures that support them, and the skills required to train the reader in how each class of
system is programmed. In preparation for this approach, some initial material, including the introduc-
tory chapter, provides the basic premises and context upon which the textbook is established. Each of
the four parallel computing models is described in terms of concepts, knowledge details, and program-
ming skills. But while this covers a large part of the useful information needed to understand and pro-
gram HPC systems, it misses some of the cross-cutting topics related to environments and tools that are
an important, even pervasive, aspect of the full context of a system that makes it truly useful beyond
the limits of an idealized beginner’s viewpoint. After all, the intent of the textbook is to give the reader
an effective working ability to take advantage of supercomputers in the professional workplace for
diverse purposes. Thus a number of important and useful tools and methods of their use are given
in an effective order. Finally, the reader is given a clear picture of the wide field of HPC, and where
within this broader context the subject matter of this book fits. This can be used to guide planning
for future pursuits and more advanced courses selected in part based on readers’ ultimate professional
goals. The overall structure and flow of this textbook are summarized below.
consistency is assumed by hardware cache coherence. This part of the book describes this parallel
execution model, the characteristics of shared-memory multiprocessors, and the OpenMP parallel pro-
gramming language.
Language: German
VON
FRANZ M. FELDHAUS
INGENIEUR
VON
FRANZ M. FELDHAUS
INGENIEUR
Ehe wir uns die Entwicklung der Säge von vier Jahrtausenden
ansehen, müssen wir uns darüber klar werden, daß man wohl bis zur
Hälfte dieser Zeit die Säge recht gut entbehren konnte. Der vor
einigen Jahren verstorbene Südseeforscher Finsch zeigte mir einmal,
als ich ihn in seinem Braunschweiger Museum besuchte, wie die von
fremder Kultur unberührten Südseevölker ein Stück Holz zerteilen:
sie schaben mit einem scharfen Stein, der in einem Handgriff
befestigt ist, in das Holz gemächlich eine Rinne. Dann drehen sie das
Holz um und arbeiten sich mit dem scharfen steinernen Zahn noch
einmal in das Holzstück hinein. Je nach der Dicke des Holzes wird
die Arbeit mit dem Steinzahn so lange fortgesetzt, bis der
Eingeborene das Stück mit wuchtigem Schlag zwischen den beiden
Rinnen zu Bruch bringen kann.
Ich sehe nicht ein, weshalb man diese Technik nicht »sägen«
nennen soll, stößt doch ein scharfer Zahn nach und nach eine Rinne
in ein Werkstück. Wir tun heute beim Sägen nichts anderes, nur
fügen wir im Werkzeug viele Zähne aneinander und lassen diese mit
größerer Geschwindigkeit durch das Material hindurchgehen.
Wir werden aber noch von den Römern und weit später von den
Nordländern hören, daß man in Zeiten großen Holzreichtums gar
nicht an ein Zersägen der Stämme dachte, sondern die Bretter mit
der Axt heraushaute.
Ägyptischer Tischler,
sägend. Links Holzklotz,
darauf Deixel.
Um 1450 vor Chr.
Ägyptische Holzarbeiter. Links Säger stehend, rechts hockend. Um 2700 vor Chr.
Etwa um's Jahr 2100 v. Chr. lernte man in Europa die
Bearbeitung des Kupfers kennen, und man fertigte daraus
Werkzeuge und Waffen. Bald wurde das Kupfer durch Mischung mit
Zinn von der widerstandsfähigeren Bronze abgelöst und Waffen,
Werkzeuge, Gerät und Schmuck wurden von einer ausgedehnten
Bronzeindustrie in erstaunlicher Vollendung hergestellt.
Bei den Sägen der Saalburg läßt sich deutlich nachweisen, daß
die Sägezähne geschränkt wurden. An einem messerartigen
Werkzeug der Saalburg findet sich nahe am Heft ein Einschnitt, der
in seiner Weite und Tiefe den Einschnitten unserer Schränkeisen
entspricht[20]. Man nimmt an, daß es sich um ein Schnitzmesser
eines Tischlers handelt, der den Einschnitt zum Schränken der Sägen
verwendete.
In den Pfahlbauten zu Wollishofen am Züricher See fand man ein
Stück von einem Sägeblatt, das hinter einer Reihe von Zähnen eine
eigenartige Strichteilung enthält. Es scheint so, als ob der
Handwerker sich ehemals diese Teilung zuerst gemacht habe, um
danach die Zähne in gleichen Abständen einfeilen zu können. Die
Wiedergabe der Photographie (siehe unten) ist leider nicht so
deutlich wie das Originalstück, das sich im römisch-germanischen
Zentralmuseum in Mainz befindet.[21]
Fragment einer feinen Säge aus dem Pfahlbau zu
Wollishofen am Züricher See.
Das römische Altertum kannte neben diesen verschiedenartig
gezahnten Sägen für Holz die ungezahnte Säge für Stein. Plinius, der
Verfasser der römischen Naturgeschichte, berichtet ums Jahr 77
unserer Zeitrechnung[22] über den Marmor: »das Schneiden
geschieht durch Sand und nur scheinbar durch Eisen, denn die Säge
drückt in sehr schmaler Linie auf den Sand, wälzt denselben durch
Hin- und Hergehen, und schneidet so unmittelbar durch die
Bewegung.« Das ist die gleiche Technik des Steinsägens, die wir
noch heute ausführen.
Die großen Sklavenmassen des Altertums verrichteten alle, auch
die schwierigsten und eintönigsten Arbeiten, und so kam es, daß die
Maschine nur da einzugreifen brauchte, wo der Sklavenarm nicht
zufassen konnte. Das Altertum kannte Windräder, Wasserräder und
Göpel, aber es verwendete sie nur selten, weil Mühlen, Pumpen und
andere Maschinen von Sklaven bewegt wurden.
Eine der wenigen Nachrichten über Wasserkraftanlagen des
Altertums bezieht sich auf Sägemühlen. Der römische Dichter
Ausonius besingt ums Jahr 369 n. Chr. in seinem Mosel-Gedicht (Vers
361) mit wenigen Worten, daß man an der Roer Steinsägen durch
Wasserräder betreibe.
Zwei Sägen auf einem römischen Altarstein. Um
90 nach Chr.
Diese Nachricht von einem mechanischen Sägewerk bleibt aber
lange vereinzelt.
Im Gotischen ist eine Benennung für das Sägewerkzeug nicht
nachweisbar. Im Altnordischen heißt das Werkzeug »sog«, im
Angelsächsischen »saga« und »sagu« und im Althochdeutschen
schrieb man »saga« und »sega«. Moritz Heyne, der ausgezeichnete
Kenner der deutschen Vergangenheit, glaubt[23], daß das alte,
unvollkommene, heimische Sägewerkzeug, wie es uns aus Funden
der Stein- und Bronzezeit bekannt ist, nach römischen Vorbildern in
Deutschland zu einem leistungsfähigen Instrument für die Bauleute
wurde. Ich kann dieser Ansicht nicht beistimmen. Sie ist eine rein
philologische. Wir wissen ja nicht einmal lückenlos, was die Römer
an Sägen hatten. Ein paar Textstellen und die wenigen zufällig
erhaltenen, hier auf Seite 13 bis 19 abgebildeten großen Sägen sind
uns bekannt. Jeder Tag kann uns einen neuen Fund, ein neues Relief
bringen und uns mit neuen Formen bekannt machen. Alles, was wir
heute über Geschichte der Technik schreiben, ist von dem zufällig
erhaltenen Material abhängig und deshalb bin ich sehr vorsichtig,
etwas Wahrscheinliches für etwas unbeugsam Sicheres auszugeben.
Neben dem gemeingermanischen Wort »saga« findet sich im
Angelsächsischen auch die Bezeichnung »snîde«. Die Säge ist
ethymologisch mit andern schneidenden Instrumenten verwandt. So
heißt die Sense im Althochdeutschen »segansa«, die Pflugschar
»seh«, die Sichel »sihhila« und das Messer »sahs«. Ursprünglich
gehen diese Worte auf die lateinische Bezeichnung für »schneiden«
= »secare« zurück. Bemerkenswert ist, daß man im
Althochdeutschen unter einer Saga oder Sega auch eine Feile
verstand.
Eine einzähnige Säge wird uns ums Jahr 1100 von einem Mönch
Namens Theophilus beschrieben, der ein umfangreiches Buch mit
Anweisungen für die Herstellung aller möglichen kirchlichen Geräte
verfaßte. In dem Abschnitt über das Tauschieren beschreibt
Theophilus eine Maschine, die ich hier mit aller Vorsicht rekonstruiert
habe. Beim Tauschieren ritzt man das zu verzierende Eisen nach
einer aufgetragenen Zeichnung ein und hämmert in dieser Ritz
silberne oder goldene Fäden. Der Ritz muß möglichst gleichmäßig
werden, sonst wird die Verzierung unansehnlich.
Theophilus sagt[25]:.... ».... Wenn du also das Eisen bearbeitet
und daraus Sporen oder andere Gerätschaften .... gemacht hast und
sie mit Gold oder Silber schmücken willst, so nimm reinstes Silber
und mache es durch Hämmern sehr dünn.« Theophilus spricht also
hier von der Verzierung durch Tauschieren. Man muß zur Anbringung
der dünnen Silberstreifen Einschnitte in das Eisen machen. Dies soll
mittels folgender Maschine geschehen: »Dann habe eine Maschine
aus Eichenholz, einen Fuß im Durchmesser und gedrechselt. Sie sei
am Umfang dünn und in der Mitte auf jeder Seite dicker, hier sei ihr
ein anderes gekrümmtes Holz, daran sie sich drehen läßt,
durchgesteckt. Diesem sei an einem Ende ein anderes gebogenes
Stück Holz angefügt, mit welchem (das Ganze) herum bewegt wird.
Hast du dieses Rad nun zwischen zwei Säulen gestellt, so mache an
dem Umfang desselben Einschnitte gleich Stufen, die nach rückwärts
gekehrt sind. Die Säulen, zwischen denen das Rad liegt, seien fest
und der Breite nach am Gestell befestigt, so daß das gekrümmte
Holz zur Rechten stehe. Noch befinde sich zur Linken vorn neben
dem Rad eine Säule, an der ein dünnes Holz angebracht sei, und
zwar so, daß es auf das Rad zu liegen komme, und es habe an der
Spitze ein dünnes Stück Stahl, so lang und breit, wie der Nagel eines
Daumens. Dies (Stück Stahl sei) in einem Loch fest eingefügt und
sehr scharf, sodaß bei der Umdrehung des Rades, während das Holz
immer von Stufe zu Stufe fällt, der so in zuckende Bewegung
gebrachte Stahl, was in seine Nähe gebracht wird, schneidet
(incidat). Wenn du nun einen Sporn.... hast, so stelle ihn auf
brennende Kohlen, bis er schwarz wird, wenn er kalt wurde, halte
ihn in der Linken und drehe das Rad mit der Rechten, nähere ihn
dem Stahl, schneide mit Sorgfalt überall....« Unklar ist die Textstelle
von Theophilus nur dort, wo er zum zweiten Mal von einem
gekrümmten Holz spricht. Mindestens ist die zweite Krümmung nicht
notwendig, und ich habe sie deshalb in der Rekonstruktion durch
einen geraden Kurbelgriff ersetzt.
Rekonstruktion einer einzähnigen Säge, die man auch als
Meißelmaschine ansprechen kann. Nach der Beschreibung von
Theophilus, etwa aus dem Jahr 1100.