0% found this document useful (0 votes)
22 views63 pages

High Performance Computing: Modern Systems and Practices 1st Edition - Ebook PDF Download

The document provides information about the textbook 'High Performance Computing: Modern Systems and Practices,' which is a comprehensive guide for mastering supercomputing and parallel programming. It includes contributions from various experts and acknowledges the importance of high performance computing in training domain scientists and engineers. The book covers topics such as parallel algorithms, program creation, debugging, and performance monitoring, making it a valuable resource for understanding and utilizing modern supercomputers.

Uploaded by

filasolles5t
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
0% found this document useful (0 votes)
22 views63 pages

High Performance Computing: Modern Systems and Practices 1st Edition - Ebook PDF Download

The document provides information about the textbook 'High Performance Computing: Modern Systems and Practices,' which is a comprehensive guide for mastering supercomputing and parallel programming. It includes contributions from various experts and acknowledges the importance of high performance computing in training domain scientists and engineers. The book covers topics such as parallel algorithms, program creation, debugging, and performance monitoring, making it a valuable resource for understanding and utilizing modern supercomputers.

Uploaded by

filasolles5t
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/ 63

High Performance Computing: Modern Systems and

Practices 1st edition - eBook PDF install


download

https://ebookluna.com/download/high-performance-computing-modern-
systems-and-practices-ebook-pdf/

Download more ebook from https://ebookluna.com


Instant digital products (PDF, ePub, MOBI) ready for you
Download now and discover formats that fit your needs...

Engineering of High-Performance Textiles 1st Edition


Menghe Miao - eBook PDF

https://ebookluna.com/download/engineering-of-high-performance-
textiles-ebook-pdf/

ebookluna.com

(eBook PDF) Regression & Linear Modeling: Best Practices


and Modern Methods

https://ebookluna.com/product/ebook-pdf-regression-linear-modeling-
best-practices-and-modern-methods/

ebookluna.com

(eBook PDF) Modern Blood Banking & Transfusion Practices


7th Edition

https://ebookluna.com/product/ebook-pdf-modern-blood-banking-
transfusion-practices-7th-edition/

ebookluna.com

(eBook PDF) Effective Training Systems Strategies and


Practices 5th Edition

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

High performance tubular protonic ceramic fuel cells via


highly-scalable extrusion process - eBook PDF

https://ebookluna.com/download/high-performance-tubular-protonic-
ceramic-fuel-cells-via-highly-scalable-extrusion-process-ebook-pdf/

ebookluna.com

(eBook PDF) Modern Systems Analysis and Design 9th Edition

https://ebookluna.com/product/ebook-pdf-modern-systems-analysis-and-
design-9th-edition/

ebookluna.com

(eBook PDF) Modern Digital and Analog Communication


Systems 4th

https://ebookluna.com/product/ebook-pdf-modern-digital-and-analog-
communication-systems-4th/

ebookluna.com

(eBook PDF) Modern Systems Analysis and Design 8th


Valacich

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

Foreword by C. Gordon Bell


Acknowledgments

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.

DEDICATION TO PAUL MESSINA, WRITTEN BY THOMAS STERLING


The authors are pleased to dedicate this book to Dr Paul C. Messina, in acknowledgment of and grat-
itude for his exceptional contributions to and leadership in the field of high performance computing
over a career of more than 4 decades. It is impossible to capture fully the importance of his impact,
but many of the significant national programs have benefited from his guidance. Dr Messina has
been a visionary, a strategist, and a leader of programs, projects, organizations, initiatives, and, perhaps
most importantly, the careers of individual scientists who would come to deliver technical accomplish-
ments and leadership of their own. Dr Messina was the founding director of the Mathematics and
Computer Science Division at Argonne National Laboratory, a leading institution applying

xxvii
xxviii ACKNOWLEDGMENTS

high performance computing to mission-critical problem domains of the US Department of Energy


(DOE). He then founded and directed the Caltech Concurrent Supercomputing Facilities that staged
the Intel Touchstone Delta massively parallel processor, the fastest computer in the world in 1991
and the prototype of a family of massively parallel processors that determined the future direction
of high performance computing for the next 30 years. Caltech Concurrent Supercomputing Facilities
evolved into the Caltech Center for Advanced Computing Research, at which two of the authors spent
some of their most formative years. Paul was particularly instrumental and served as co-principal
investigator for the pioneering NSF Teragrid and the National Virtual Observatory. He directed the
DOE ASCI program for almost 3 years, building up the nation’s high performance computing capa-
bilities toward the leadership-scale computing it currently demonstrates. Most recently Paul Messina
led the Exascale Computing Project, America’s biggest undertaking in achieving exascale computing
performance by the beginning of the 2020s. For some Paul has had a direct and meaningful effect on
their individual careers. To author Thomas Sterling Paul has been a colleague, leader, mentor, and
friend for many years.
Morgan Kaufmann is an imprint of Elsevier
50 Hampshire Street, 5th Floor, Cambridge, MA 02139, United States
Copyright © 2018 Elsevier Inc. All rights reserved.
No part of this publication may be reproduced or transmitted in any form or by any means, electronic or
mechanical, including photocopying, recording, or any information storage and retrieval system, without
permission in writing from the publisher. Details on how to seek permission, further information about the
Publisher’s permissions policies and our arrangements with organizations such as the Copyright Clearance
Center and the Copyright Licensing Agency, can be found at our website: www.elsevier.com/permissions.
This book and the individual contributions contained in it are protected under copyright by the Publisher (other
than as may be noted herein).
Notices
Knowledge and best practice in this field are constantly changing. As new research and experience broaden our
understanding, changes in research methods, professional practices, or medical treatment may become
necessary.
Practitioners and researchers must always rely on their own experience and knowledge in evaluating and using
any information, methods, compounds, or experiments described herein. In using such information or methods
they should be mindful of their own safety and the safety of others, including parties for whom they have a
professional responsibility.

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.

Library of Congress Cataloging-in-Publication Data


A catalog record for this book is available from the Library of Congress
British Library Cataloguing-in-Publication Data
A catalogue record for this book is available from the British Library
ISBN: 978-0-12-420158-3

For information on all Morgan Kaufmann publications visit


our website at https://www.elsevier.com/books-and-journals

Publisher: Katey Birtcher


Acquisition Editor: Steve Merken
Developmental Editor: Nate McFadden
Production Project Manager: Punithavathy Govindaradjane
Designer: Mark Rogers

Typeset by TNQ Books and Journals


Dedicated to

Dr. Paul C. Messina


Leader, colleague, collaborator, mentor, friend
Foreword

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.’

Anatomy of supercomputer, 14e16


A computer performance, 16e21
Accelerator architecture, 451e453
peak performance, 17e18
evolution of graphics processing unit functionality, 466e471,
performance, 16
468fe469f, 470t
performance degradation, 19e20
graphics processing units, 464e466, 465f
performance improvement, 20e21
heterogeneous system architecture, 477e478
scaling, 18e19
historic perspective, 454e463
sustained performance, 18
accelerators in processor I/O space, 461
Antikythera mechanism, 53f
accelerators with industry-standard interfaces, 462e463
Application profiling, significance of, 390e391
coprocessors, 456e461
Application programming, 4, 8e9
Intel 8087, 457e459
Application-level checkpointing, 598e601
Motorola MC68881, 459e461
Architecture overview, essential SLURM, 147, 147f
modern graphics processing unit architecture, 471e477,
Arithmetic logic unit (ALU), 63e64, 70
472t
Arithmetic on variables, Linux, 654
compute architecture, 471e474, 474f
Asynchronous multitasking, 613e615
interconnects, 475e476
actor synchronization, 615
memory implementation, 474e475
global address space, 614e615
programming environment, 476e477
message-driven computation, 613e614
outcomes, 480
multithreaded, 613
Accelerators
runtime system software, 615
with industry-standard interfaces, 462e463
Atomics, 504e505
in processor I/O space, 461
Automated calculators through mechanical technologies,
Actor synchronization, 615
22e23
Advection equation using finite difference, 295e297,
296fe298f
Aggregated storage, 534e544 B
network attached storage, 543e544 Backus, John, 317
redundant array of independent disks, 532f, 534e541 Barrier directive, OpenMP programming model, 243
hybrid redundant array of independent disks variants, Basic linear algebra subprograms (BLAS), 317e322
539e541 Level 1 rotation operations, 320t
RAID 0: striping, 534e535 Level 1 vector operations, 320te321t
RAID 1: mirroring, 535 Levels 2 and 3, 321te322t
RAID 2: bit-level striping with hamming code, 536 routines, precision prefixes used by, 319t
RAID 3: byte-level striping with dedicated parity, Basic methods of use, commodity clusters, 104e113
536e537 compilers and compiling, 112e113
RAID 4: block-level striping with dedicated parity, 537 logging on, 104e105
RAID 5: block-level striping with single distributed package configuration and building, 110e111
parity, 538 running applications, 113
RAID 6: block-level striping with dual distributed parity, user space and directory system, 105e110
539 Basic two-input logic gates, 56f
storage area networks, 541e542 Benchmarking
tertiary storage, 544, 544f, 545t benchmarks used in HPC community, 118t
Allgather, 272e274 Graph500, 132e135
Alltoall, 277e278, 277f highly parallel computing linpack, 120e123
Amdahl’s law, 70e73 high performance conjugate gradients, 126e128
Amdahl’s law plus, 196e199, 197fe199f HPC challenge benchmark suite, 123e124

677
678 INDEX

Benchmarking (Continued ) Clearspeed Advance e710 accelerator board, 463f


key properties of, 117e120 Climate change, understanding of, 12e14
miniapplications as benchmarks, 135e138 CMOS, 55
NAS parallel benchmarks, 130e131 Collective data movement, 265e267, 265fe267f
nonproprietary, 119t Command substitution, Linux, 654
outcomes, 138e139 Command-line utilities, Linux, 659e663
overview, 115e117 data compression and archiving, 662e663
standard HPC community benchmarks, 120 process management, 661e662
top-performing supercomputer, 119t text tools, 659e661
Beowulf class of parallel computer architecture, 77f Commands, SLURM scheduling, 151e166
Beowulf cluster project, 91e93 sacct, 164e165
Bit-level striping with hamming code (RAID 2), 536 salloc, 160e161
Block-level striping sbatch, 161e162
with dedicated parity (RAID 4), 537 scancel, 163e164
with dual distributed parity (RAID 6), 539 sinfo, 165e166
with single distributed parity (RAID 5), 538 squeue, 162e163
Branch prediction, symmetric multiprocessor architecture, srun, 151e160
201e202 Commercial parallel debuggers, 431e432
Breadth first search, parallel algorithms, 306e310, 307fe309f Commercial systems summary, commodity clusters, 95
Brief history of supercomputing, 21e38 Commodity clusters
automated calculators through mechanical technologies, basic methods of use, 104e113
22e23 compilers and compiling, 112e113
communicating sequential processors and very large scale logging on, 104e105
integration, 34e37 package configuration and building, 110e111
instruction-level parallelism, 29e30 running applications, 113
multicore petaflops, 37 user space and directory system, 105e110
neodigital age and beyond Moore’s law, 37e38 Beowulf cluster project, 91e93
single-instruction multiple data array, 33 cluster elements, 85e86
vector processing and integration, 30e33 definition of, 84
von Neumann architecture in vacuum tubes, 24e29 hardware architecture, 93e95
Broadcast, 268e269 commercial systems summary, 95
Buffer flush, 560 node, 93e94
Buffered File I/O, 559e562 secondary storage, 95
buffer flush, 560 system area networks, 94e95
conversion between streams and file descriptors, 561e562 history, 88e90
file open and close, 559 HPC architecture, 77e78
offset update and query, 560 impact on top 500 list, 86e87
sequential data access, 560 motivation and justification for clusters,
Bush, Vannevar, 22e23 84e85
Byte-level striping with dedicated parity (RAID 3), 536e537 outcomes, 113e114
overview, 84e90
programming interfaces, 97e98
C
high performance computing programming languages,
C++ AMP, 486
97
Cannon’s algorithm, 301e303, 301fe307f
parallel programming modalities, 97e98
Catalyzing fraud detection, 10
software environment, 98e104
CDC-7600, 318f
operating systems, 98e99
Cellular automata, 618e619
resource management, 99e100
Checkpointing, 591
debugger, 101
application-level, 598e601
performance profiling, 101
outcomes, 602
visualization, 101e104
system-level, 592e597
Communicating sequential processors and, 34e37
Checkpoint/restart, 47e48
INDEX 679

Communication collectives, 265e278 GDB cheat sheet, 430


allgather, 272e274 setting a variable, 428e430, 430f
alltoall, 277e278, 277f threads, 430, 431fe432f
broadcast, 268e269 watch points and catch points, 425e426, 427f
collective data movement, 265e267, Valgrind, 430e431, 433t
265fe267f unprotected shared variable assessment, 433e434, 436f
gather, 271e272 Digital logic, HPC architecture, 55e58
reduction operations, 274e276, 274t Directives, OpenMP programming model, 230e231
scatter, 269e271 Discovering oil and gas, 10
Communicators, 255e258 Distributed computation, MapReduce, 584
example, 257e258 Distributing oil and gas, 10
rank, 256e257 Divide and conquer, parallel algorithms, 287e291,
size, 256 288fe291f
Compilation, Linux, 656e659 Domain-specific languages for linear algebra, 329, 330fe332f
Compiler flags for debugging, 439 Dongarra, Jack, 116b
Compilers and compiling, commodity clusters, 112e113 Dynamic random access memory (DRAM), 45, 61e62
Compute architecture, 471e474, 474f
Compute unified device architecture, 485 E
Computer performance, 16e21
Earth Simulator (ES), 64b
Concurrent applications, SLURM job scripting, 167e169
Efficiency, HPC architecture, 46
Connection Machine 2 (CM-2), 454e463
Eigenvalue SoLvers for Petaflop-applications, 328
Connection Machine 5 (CM-5), 252f
Elastic computing, SLURM scheduling, 150
Control Data Corporation (CDC) 6600, 51e55
Electronic numerical integrator and computer (ENIAC), 51f
Control flow, Linux, 654e656
Emacs, 645e646
Conversion between streams and file descriptors, 561e562
Embarrassingly parallel, parallel algorithms, 292e293, 293f
Coprocessors, 456e461
Enabling technology, HPC architecture, 51e62
Intel 8087, 457e459
digital logic, 55e58
Motorola MC68881, 459e461
memory technologies, 58e62
Cray, Seymour, 30e33
early memory devices, 59e61
Cray-1 Supercomputer, 32f
modern memory technologies, 61e62
Critical synchronization directive, OpenMP programming
roles of technologies, 55
model, 242
technology epochs, 51e55
Environment variables
D OpenMP programming model, 229e230
Data access with explicit offset, 556 SLURM job scripting, 169e171
Data compression and archiving, Linux, 662e663 Environment variables of interest, 185e186
Data management, 497e501 Essential bash, Linux, 647e656
Data reuse and locality, symmetric multiprocessor arithmetic on variables, 654
architecture, 204e205 command substitution, 654
Dataflow, 617e618 control flow, 654e656
Deadlock, 434e439 input/output, 649e650
Debugger, commodity clusters, 101 path expansion, 647e648
Debugging, 421e422 pipelines, 649e650
compiler flags for debugging, 439 redirection, 649e650
debugging MPI example, deadlock, 434e439 special character handling, 649
outcomes, 445 variables, 650e653
system monitors to aid debugging, 441e445 Essential gperftools, 391e398
tools, 423e432 Essential Linux
commercial parallel debuggers, 431e432 command-line utilities, 659e663
GNU debugger, 423e430 data compression and archiving, 662e663
back trace, 427e428, 428fe429f process management, 661e662
break points, 424e425, 425f, 425t, 426f text tools, 659e661
680 INDEX

Essential Linux (Continued ) overview of collective calls, 262e263


compilation, 656e659 user-defined data types, 281e283
essential bash, 647e656 Essential OpenMP, 225e226
arithmetic on variables, 654 outcomes, 245e246
command substitution, 654 overview of OpenMP programming model, 226e231
control flow, 654e656 runtime library and environment variables, 228e231
input/output, 649e650 directives, 230e231
path expansion, 647e648 environment variables, 229e230
pipelines, 649e650 runtime library routines, 230
redirection, 649e650 thread parallelism, 226e228
special character handling, 649 thread variables, 228
variables, 650e653 parallel threads and loops, 231e240
files editing, 645e647 parallel “for”, 233e238
Emacs, 645e646 parallel threads, 231e232
Gedit, 646 private, 232e233
Kate, 646 sections, 239e240
Nano, 646 reduction, 244
Vi, 645 synchronization, 241e243
logging In, 637e638 barrier directive, 243
navigating the file system, 641e645 critical synchronization directive, 242
remote access, 639e640 master directive, 242e243
Essential MPI, 250 single directive, 243
communication collectives, 265e278 Essential portable batch system, 172e187
allgather, 272e274 PBS cheat sheet, 186e187
alltoall, 277e278, 277f PBS commands, 174e183
broadcast, 268e269 pbsnodes, 183
collective data movement, 265e267, qdel, 180
265fe267f qstat, 180e182
gather, 271e272 qsub, 174e179
reduction operations, 274e276, 274t tracejob, 182e183
scatter, 269e271 PBS job scripting, 184e186
communicators, 255e258 environment variables of interest, 185e186
example, 257e258 MPI jobs, 185
rank, 256e257 OpenMP jobs, 184e185
size, 256 portable batch system architecture, 173e174, 173f
message-passing interface basics, 253e255 portable batch system overview, 172e173
message-passing interface example, 254e255 Essential POSIX file interface, 554e562
MPI_Finalize, 254 buffered File I/O, 559e562
mpi.h, 253 buffer flush, 560
MPI_Init, 253 conversion between streams and file descriptors,
message-passing interface standards, 251e253 561e562
nonblocking point-to-point communication, file open and close, 559
279e281 offset update and query, 560
outcomes, 283 sequential data access, 560
point-to-point messages, 258e262 system calls for file access, 554e558
example, 260e262 data access with explicit offset, 556
message-passing interface data types, 259, 260t file length adjustment, 556e557
MPI Recv, 259e260 file offset manipulation, 556
MPI send, 259 file open and close, 554e555
synchronization collectives, 262e265 file status query, 557e558
barrier synchronization, 263, 263f sequential data access, 555e556
example, 264e265 synchronization with storage device, 557
INDEX 681

Essential resource management SLURM cheat sheet, 171e172


essential portable batch system, 172e187 SLURM job scripting, 166e171
PBS cheat sheet, 186e187 concurrent applications, 167e169
PBS Commands, 174e183 environment variables, 169e171
pbsnodes, 183 MPI scripts, 167
qdel, 180 OpenMP scripts, 167
qstat, 180e182 script components, 166e167
qsub, 174e179 SLURM scheduling, 149e150
tracejob, 182e183 elastic computing, 150
PBS job scripting, 184e186 gang scheduling, 149
environment variables of interest, 185e186 generic resources, 150
MPI jobs, 185 high-throughput computing, 150
OpenMP jobs, 184e185 preemption, 149e150
portable batch system architecture, 173e174, 173f trackable resources, 150
portable batch system overview, 172e173 workload organization, 148, 148f
essential SLURM, 146e172 Ethernet, 213e214
architecture overview, 147, 147f Exascale computing, 610e612
commands, 151e166 accelerated approach, 612
sacct, 164e165 capacity, 611e612
salloc, 160e161 challenges to, 611
sbatch, 161e162 lightweight cores, 612
scancel, 163e164 Execution pipeline, symmetric multiprocessor architecture,
sinfo, 165e166 200e201
squeue, 162e163 Expanded parallel programming models,
srun, 151e160 606e607
SLURM cheat sheet, 171e172 advance in message-passing interface,
SLURM job scripting, 166e171 606e607
concurrent applications, 167e169 advances in OpenMP, 607
environment variables, 169e171 MPI+X, 607
MPI scripts, 167 Extended high performance computing architecture,
OpenMP scripts, 167 608e609
script components, 166e167 field programmable gate arrays, 609
SLURM scheduling, 149e150 lightweight architectures, 608e609
elastic computing, 150 world’s fastest machine, 608
gang scheduling, 149 External I/O interfaces, symmetric multiprocessor
generic resources, 150 architecture, 213e222
high-throughput computing, 150 JTAG, 218e219
preemption, 149e150 network interface controllers, 213e215
trackable resources, 150 Ethernet, 213e214
workload organization, 148, 148f InfiniBand, 215
managing resources, 142e146 serial advanced technology attachment,
outcomes, 187e189 215e218
Essential SLURM, 146e172 universal serial bus, 220e222
architecture overview, 147, 147f
commands, 151e166 F
sacct, 164e165 Fast Fourier transform (FFT), 628e631
salloc, 160e161 Field programmable gate arrays, 609
sbatch, 161e162 File length adjustment, 556e557
scancel, 163e164 File management, 350
sinfo, 165e166 File offset manipulation, 556
squeue, 162e163 File open and close, 554e555, 559
srun, 151e160 File status query, 557e558
682 INDEX

File systems, 86 GNU scientific library, 326, 327f


essential POSIX file interface, 554e562 Gnuplot, 365e368, 366fe370f
buffered File I/O, 559e562 gperftools, 391e398
buffer flush, 560 Graph algorithms, 329
conversion between streams and file descriptors, Graph500, 132e135, 133fe134f, 134t, 135fe137f
561e562 Graphics processing units, 464e466, 465f
file open and close, 559 functionality, evolution of, 466e471, 468fe469f,
offset update and query, 560 470t
sequential data access, 560 modern architecture, 471e477, 472t
system calls for file access, 554e558 compute architecture, 471e474, 474f
data access with explicit offset, 556 interconnects, 475e476
file length adjustment, 556e557 memory implementation, 474e475
file offset manipulation, 556 programming environment, 476e477
file open and close, 554e555 Gropp, William D., 251f
file status query, 557e558 Gyrokinetic Toroidal code, 9f
sequential data access, 555e556
synchronization with storage device, 557 H
general parallel file system, 565e569, 566f, 566t
Hadoop, 585e588
Lustre file system, 569e575
Halo exchange, parallel algorithms, 294e299, 294f
network file system, 562e565, 563f
advection equation using finite difference, 295e297,
outcomes, 575e576
296fe298f
role and function, 549e553
sparse matrix vector multiplication, 297e299,
Files editing, Linux, 645e647
299fe300f
Emacs, 645e646
Hard-disk drives, 514e520, 515f, 517f, 519t
Gedit, 646
Hardware architecture, commodity clusters, 93e95
Kate, 646
commercial systems summary, 95
Nano, 646
node, 93e94
Vi, 645
secondary storage, 95
Flops, 46
system area networks, 94e95
Flynn’s taxonomy, 48e50, 50f
Hardware fault, 47e48
Forkejoin model
Heterogeneous computer structures, 78
master/worker threads, 228f
Heterogeneous system architecture, 477e478
parallel algorithms, 286e287, 287fe288f
High performance computing
Forwarding, symmetric multiprocessor architecture, 202
computational science research areas, 314f
Foundational visualization concepts, 364
disciplines, 3e9
application programming, 8e9
G application programs, 4
Gang scheduling, SLURM scheduling, 149 definition, 3e4
Gara, Alan, 610e612 high performance computing systems, 5e7
Gather, 271e272 performance and metrics, 4e5
Gedit, 646 supercomputing problems, 7e8
General parallel file system, 565e569, 566f, 566t programming languages, commodity clusters, 97
Generic resources, SLURM scheduling, 150 systems, 5e7, 7f
Gigabit Ethernet High performance linpack, 120e123, 122f
network interface card, 214f High performance conjugate gradients, 126e128
switch, 214f High throughput computing, SLURM scheduling, 150
Global address space, 614e615 Historic perspective, of accelerator architecture, 454e463
GNU debugger, 423e430 accelerators in processor I/O space, 461
back trace, 427e428, 428fe429f accelerators with industry-standard interfaces,
break points, 424e425, 425f, 425t, 426f 462e463
GDB cheat sheet, 430 coprocessors, 456e461
setting a variable, 428e430, 430f Intel 8087, 457e459
threads, 430, 431fe432f Motorola MC68881, 459e461
watch points and catch points, 425e426, 427f Hopper, Grace Brewster Murray, 421f, 423f
INDEX 683

Host node, 86 Interconnects, 475e476


HPC architecture I/O system management, 351
enabling technology, 51e62 Isosurfaces, 364, 365f
digital logic, 55e58
memory technologies, 58e62 J
early memory devices, 59e61
JTAG, 218e219, 219f
modern memory technologies, 61e62
roles of technologies, 55
technology epochs, 51e55 K
heterogeneous computer structures, 78 Kate, 646
key properties, 44e48 Kernels construct, 495e496
efficiency, 46 Key properties, HPC architecture, 44e48
parallelism, 45e46 efficiency, 46
power, 46e47 parallelism, 45e46
programmability, 48 power, 46e47
reliability, 47e48 programmability, 48
speed, 45 reliability, 47e48
multiprocessors, 73e78 speed, 45
commodity clusters, 77e78 K-means clustering, 582e584
massively parallel processors, 76
shared-memory multiprocessors, 74e76 L
outcomes, 78e79 Lapack, 324, 325f
overview, 44 driver routines, 324t
parallel architecture families, Flynn’s taxonomy, 48e50 Libraries, 313e315, 315t
single-instruction, multiple data array, 69e73 graph algorithms, 329
Amdahl’s law, 70e73 linear algebra, 315e329, 316f
single-instruction, multiple data architecture, 69e70 basic subprograms, 317e322
vector and pipelining, 64e68 domain-specific languages for, 329, 330fe332f
pipeline parallelism, 65e68 eigenvalue SoLvers for Petaflop-applications, 328
vector processing, 68 GNU scientific library, 326
von Neumann sequential processors, 62e64 Hypre, scalable linear solvers and multigrid methods,
HPC challenge benchmark suite, 123e124 328e329
Hybrid redundant array of independent disks variants, package, 324e326
539e541 portable extensible toolkit for scientific computation,
Hypre, scalable linear solvers and multigrid methods, 327e328
328e329 scalable library for eigenvalue problem computations,
328
I scalable linear algebra, 326
IBM Blue Gene supercomputers, 610e612 supernodal LU, 326e327
ILLIAC (Illinois Automatic Computer), 454e463 mesh decomposition, 333e334, 340f
Independent disks variants, hybrid redundant array of, outcomes, 342e343
539e541 parallel input/output, 330e332, 335f
InfiniBand, 215 parallelization, 334
port, 216f partial differential equations, 329
Input/output , Linux, 649e650 performance monitoring, 341e342
Instruction interface, 70 signal processing, 334e341
Instruction set architecture (ISA), 44, 54 visualization, 334
Instruction-level parallelism, 29e30 Lightweight architectures, 608e609
symmetric multiprocessor architecture, 201 Linear algebra, 315e329, 316f
Integrated performance monitoring toolkits, 407e410, 410f basic subprograms, 317e322
Intel 8087, 457e459, 457fe458f domain-specific languages for, 329, 330fe332f
Intel Touchstone Delta, 35e36 eigenvalue SoLvers for Petaflop-applications, 328
684 INDEX

Linear algebra (Continued ) storage area networks, 541e542


GNU scientific library, 326 tertiary storage, 544, 544f, 545t
Hypre, scalable linear solvers and multigrid methods, history, 512, 513f
328e329 outcomes, 545e546
package, 324e326 storage device technology, 514e532
portable extensible toolkit for scientific computation, hard-disk drives, 514e520, 515f, 517f, 519t
327e328 magnetic tape, 524e528, 527fe528f, 529t
scalable library for eigenvalue problem computations, 328 optical storage, 529e532, 530f
scalable linear algebra, 326 solid-state drive storage, 520e524, 521fe522f, 525t,
supernodal LU, 326e327 529t
Linpack, 116b, 120e123 Massively parallel processor (MPP), 55, 76f
Local registers, 70 HPC architecture, 76
Logging in, Linux, 637e638 Master directive, OpenMP programming model, 242e243
Logging on, commodity clusters, 104e105 Matplotlib, 369e372, 371fe372f
Loop scheduling, 501e504 Mellanox IB cards, 215f
Lower/upper decomposition, 624e628 Memory block, 70
Lustre file system, 569e575 Memory hierarchy, symmetric multiprocessor architecture,
204e209, 204f
data reuse and locality, 204e205
M
memory system performance, 207e209
Magnetic tape, 524e528, 527fe528f, 529t
Memory implementation, 474e475
Magnetism, 60e61
Memory management, 350, 358e361
Makefiles, 111
virtual address translation, 359e361
Managereworker, parallel algorithms, 291e292, 292f
virtual memory, 359
Managing oil and gas, 10
virtual page addresses, 359
Managing resources, 142e146
Memory system performance, symmetric multiprocessor
Manufacturing, accelerating innovation in, 10e11
architecture, 207e209
MapReduce, 579
Memory technologies, HPC architecture, 58e62
distributed computation, 584
early memory devices, 59e61
Hadoop, 585e588
modern memory technologies, 61e62
Map and Reduce, 579e584
Mesh decomposition, 333e334, 340f
K-means clustering, 582e584
Mesh tessellation, 364, 366f
shared neighbors, 581e582
Message-driven computation, 613e614
word count, 581
Message passing interface (MPI), 253e255
outcomes, 588e589
advance in, 606e607
Market data analytics, 10
example, 254e255
Mass storage, 509e512
jobs, 185
aggregated storage, 534e544
message passing interface example, 254e255
network attached storage, 543e544
MPI_Finalize, 254
redundant array of independent disks, 532f, 534e541
mpi.h, 253
hybrid redundant array of independent disks variants,
MPI_Init, 253
539e541
scripts, SLURM job scripting, 167
RAID 0: striping, 534e535
standards, 251e253
RAID 1: mirroring, 535
Metrics, 4e5
RAID 2: bit-level striping with hamming code, 536
Miniapplications as benchmarks, 135e138, 137t
RAID 3: byte-level striping with dedicated parity,
Mirroring (RAID 1), 535
536e537
Modern graphics processing unit architecture, 471e477,
RAID 4: block-level striping with dedicated parity,
472t
537
compute architecture, 471e474, 474f
RAID 5: block-level striping with single distributed
interconnects, 475e476
parity, 538
memory implementation, 474e475
RAID 6: block-level striping with dual distributed
programming environment, 476e477
parity, 539
INDEX 685

Monitoring hardware events, 398e407 parallel construct, 493e495


perf, 398e404 variable scope, 504
performance application programming interface, 404e407 environment variables, 491e492
Moore, Gordon, 17 library calls, 489e491
Moore’s law, 37e38 programming concepts, 487e489
Motivation and justification, for clusters, 84e85 OpenCL, 485e486
Motorola MC68881, 459e461, 459f OpenMP
MPI_Finalize, 254 advances in, 607
mpi.h, 253 jobs, 184e185
MPI_Init, 253 programming model, 226e231
MPI+X, 607 runtime library and environment variables,
Multicore petaflops, 37 228e231
Multigrid methods, 328e329 directives, 230e231
Multiprocessors, HPC architecture, 73e78 environment variables, 229e230
commodity clusters, 77e78 runtime library routines, 230
massively parallel processors, 76 thread parallelism, 226e228
shared-memory multiprocessors, 74e76, 74f thread variables, 228
Multithreading, 613 scripts, SLURM job scripting, 167
symmetric multiprocessor architecture, 203 Operating systems, 347e349, 348f
commodity clusters, 98e99
N memory management, 358e361
virtual address translation, 359e361
Nano, 646
virtual memory, 359
NAS parallel benchmarks, 130e131, 130t
virtual page addresses, 359
Navigating the file system, Linux, 641e645
outcomes, 361
Neodigital age, 37e38, 616e620
process management, 351e357
cellular automata, 618e619
process control block, 353e354
dataflow, 617e618
process management activities,
neuromorphic, 619
354e355
quantum computing, 619e620
process states, 352e353
Nested parallel threads, 229f
scheduling, 355e357, 356f
Network attached storage, 543e544
structures and services, 349e351
Network file system, 562e565, 563f
file management, 350
Network interface controllers, 213e215
I/O system management, 351
Ethernet, 213e214
memory management, 350
InfiniBand, 215
process management, 349e350
Neuromorphic computing, 619
secondary storage management, 351
Node, commodity clusters, 93e94
system components, 349
Nonblocking point-to-point communication, 279e281
threads, 357, 358f
Nonuniform memory access (NUMA), 75e76
Optical storage, 529e532, 530f
architectures, 75f
Numerical integration, 621e624
P
O Package configuration and building, commodity clusters,
Offset update and query, 560 110e111
OpenACC, 483e487, 488f Parallel algorithms
C++ AMP, 486 divide and conquer, 287e291, 288fe291f
compute unified device architecture, 485 embarrassingly parallel, 292e293, 293f
directives, 492e505 forkejoin, 286e287, 287fe288f
atomics, 504e505 generic classes of, 286t
data management, 497e501 halo exchange, 294e299, 294f
Kernels construct, 495e496 advection equation using finite difference, 295e297,
loop scheduling, 501e504 296fe298f
686 INDEX

Parallel algorithms (Continued ) commodity clusters, 101


sparse matrix vector multiplication, 297e299, essential gperftools, 391e398
299fe300f significance of application profiling, 390e391
managereworker, 291e292, 292f Permutation: Cannon’s algorithm, parallel algorithms,
outcomes, 310e311 301e303, 301fe307f
overview, 285e286 Personalized medicine and drug discovery, 11
permutation: Cannon’s algorithm, 301e303, 301fe307f Petaflops
task dataflow: breadth first search, 306e310, 307fe309f applications, 328
Parallel architecture families, 48e50 multicore, 37
Parallel construct, 493e495 Pipeline parallelism, HPC architecture, 65e68, 67f
Parallel “for,” OpenMP programming model, 233e238 Pipelines, Linux, 649e650
Parallel input/output, 330e332, 335f Point-to-point messages, 258e262
Parallel programming modalities, commodity clusters, 97e98 example, 260e262
Parallel threads/loops, OpenMP programming model, message-passing interface data types, 259, 260t
231e240 MPI Recv, 259e260
parallel “for”, 233e238 MPI send, 259
parallel threads, 231e232 Portable batch system (PBS)
private, 232e233 architecture, 173e174, 173f
sections, 239e240 cheat sheet, 186e187
Parallelism, HPC architecture, 45e46 commands, 174e183
Parallelization, 334 pbsnodes, 183
ParaView, 379, 379f qdel, 180
Partial differential equations, 329 qstat, 180e182
Pascal GP100 architecture, 473f job status query, 180e181
Pascaline mechanical calculator, 53f queue status query, 181
Path expansion, Linux, 647e648 server status query, 182
pbsnodes, 183 qsub, 174e179
PCI bus, 209e213, 210f tracejob, 182e183
connectors supporting, 211f job scripting, 184e186
PCI express (PCIe), 210e212, 211f environment variables of interest, 185e186
slots, 212f MPI jobs, 185
Peak performance, 17e18 OpenMP jobs, 184e185
perf, 398e404 overview, 172e173
Performance, 4e5, 16 Portable extensible toolkit for scientific computation,
degradation, 19e20 327e328, 328t
improvement, 20e21 Power, HPC architecture, 46e47
monitoring, 341e342, 383e385 Predicting natural disasters, 12e14
integrated performance monitoring toolkits, 407e410, Preemption, SLURM scheduling, 149e150
410f Private, OpenMP programming model, 232e233
monitoring hardware events, 398e407 Process control block, 353e354
perf, 398e404 Process management, 349e357
performance application programming interface, activities, 354e355
404e407 Linux, 661e662
outcomes, 417e418 process control block, 353e354
performance profiling, 390e398 process management activities, 354e355
essential gperftools, 391e398 process states, 352e353
significance of application profiling, 390e391 scheduling, 355e357, 356f
profiling in distributed environments, 411e417, Process states, 352e353
414fe415f, 417f Processor core architecture, symmetric multiprocessor
time measurement, 385e390 architecture, 199e203, 200t
Performance application programming interface, 404e407 branch prediction, 201e202
Performance profiling, 390e398 execution pipeline, 200e201
INDEX 687

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

Single-instruction (Continued ) architecture overview, 192e196


Amdahl’s law, 70e73 external I/O interfaces, 213e222
single-instruction, multiple data architecture, 69e70 JTAG, 218e219
Society, supercomputing impact on, 10e14 network interface controllers, 213e215
Software environment, commodity clusters, 98e104 Ethernet, 213e214
operating systems, 98e99 InfiniBand, 215
resource management, 99e100 serial advanced technology attachment, 215e218
debugger, 101 universal serial bus, 220e222
performance profiling, 101 memory hierarchy, 204e209, 204f
visualization, 101e104 data reuse and locality, 204e205
Solid-state drive storage, 520e524, 521fe522f, 525t, 529t memory hierarchy, 205e207, 206f
SoLvers for Petaflop-applications, 328 memory system performance, 207e209
Sparse matrix vector multiplication, 297e299, 299fe300f outcomes, 222e223
Special character handling, Linux, 649 overview, 191e192
Speed, HPC architecture, 45 PCI bus, 209e213, 210f
squeue, 162e163 processor core architecture, 199e203, 200t
srun, 151e160 branch prediction, 201e202
Standard HPC community benchmarks, 120 execution pipeline, 200e201
Static random access memory (SRAM), 45, 61 forwarding, 202
Storage area networks, 541e542 instruction-level parallelism, 201
Storage device technology, 514e532 multithreading, 203
hard-disk drives, 514e520, 515f, 517f, 519t reservation stations, 202
magnetic tape, 524e528, 527fe528f, 529t Synchronization, OpenMP programming model, 241e243
optical storage, 529e532, 530f barrier directive, 243
solid-state drive storage, 520e524, 521fe522f, 525t, 529t critical synchronization directive, 242
Streamlines, 364, 364f master directive, 242e243
Streams and file descriptors, conversion between, 561e562 single directive, 243
Striping (RAID 0), 534e535 Synchronization collectives, 262e265
Structures and services, 349e351 barrier synchronization, 263, 263f
file management, 350 example, 264e265
I/O system management, 351 overview of collective calls, 262e263
memory management, 350 Synchronization with storage device, 557
process management, 349e350 System area networks, commodity clusters, 94e95
secondary storage management, 351 System calls for file access, 554e558
system components, 349 data access with explicit offset, 556
Supercomputing, impact on science, society, and security, file length adjustment, 556e557
10e14 file offset manipulation, 556
accelerating innovation in manufacturing, 10e11 file open and close, 554e555
catalyzing fraud detection and market data analytics, 10 file status query, 557e558
discovering oil and gas, 10 sequential data access, 555e556
distributing oil and gas, 10 synchronization with storage device, 557
managing oil and gas, 10 System components, 349
personalized medicine and drug discovery, 11 System monitors to aid debugging, 441e445
predicting natural disasters, 12e14 System-level checkpointing, 592e597
understanding climate change, 12e14
Supercomputing problems, 7e8, 8t T
Supernodal LU, 326e327 Tabulator built for the 1890 census, 54f
Sustained performance, 18 Task dataflow, parallel algorithms, 306e310, 307fe309f
Symmetric memory processor (SMP), 55, 75, 194f Technology epochs, HPC architecture, 51e55
examples and characteristics, 192t Tertiary storage, 544, 544f, 545t
Symmetric multiprocessor architecture Text tools, Linux, 659e661
Amdahl’s law plus, 196e199, 197fe199f Thermal control, 47
INDEX 689

Thinking Machine CM-2, 34f Vi, 645


Thread parallelism, OpenMP programming model, 226e228 Virtual address translation, 359e361
Thread variables, OpenMP programming model, 228 Virtual memory, 359
Threads, 357, 358f Virtual page addresses, 359
Tic-Tac-Toe game, 631e635 VisIt, 380, 380f
Time measurement, 385e390 Visualization, 334, 363
Timing in digital logic, 57f commodity clusters, 101e104
Titan petaflops machine, 2f foundational visualization concepts, 364
Top 500 list, clusters impact on, 86e87 Gnuplot, 365e368, 366fe370f
tracejob, 182e183 Matplotlib, 369e372, 371fe372f
Trackable resources, SLURM scheduling, 150 outcomes, 381
Translation lookaside buffer (TLB), 360, 360f ParaView, 379, 379f
Turing, Alan M., 23 VisIt, 380, 380f
Visualization Toolkit, 372e379, 373fe374f, 377f
U Visualization Toolkit, 372e379, 373fe374f, 377f
Universal serial bus (USB), 220e222 Volume rendering, 364, 365f
connector types, 221f von Neumann, John, 28
devices connected in multitiered topology, 221f architecture in vacuum tubes, 24e29
Unprotected shared variable assessment, 433e434, 436f sequential processors, 62e64, 63f
User space and directory system, commodity clusters,
105e110 W
User-defined data types, 281e283 Watanabe, Tadashi, 30e33
Weitek WTL 4167 FPU, 462f
V Whirlwind vacuum-tube-based digital electronic computer,
Vacuum tubes, von Neumann architecture in, 24e29 59b
Valgrind, 430e431, 433t Wilkes, Maurice, 26b
Variable scope, 504 Word count, 581
Variables, Linux, 650e653 Workload organization, essential SLURM, 148, 148f
Vector integration, 30e33 World’s fastest machine, 608
Vector processing, 30e33
HPC architecture, 68, 68f
Preface

THE PURPOSE OF THIS TEXTBOOK


High performance computing (HPC) is a multidisciplinary field combining hardware technologies and
architecture, operating systems, programming tools, software, and end-user problems and algorithms.
Acquiring the necessary concepts, knowledge, and skills for capable engagement within HPC
routinely involves an apprenticeship at one of a few rarefied sites with the essential experts, facilities,
and mission objectives. Whether one’s goals are associated with specific end-user domains such as sci-
ence, engineering, medicine, or commercial applications, or focused on the enabling systems’ technol-
ogies and methodologies that make supercomputing effective, the entry-level practitioner must
embrace a wide range of distinct but interrelated and interdependent areas that require an understand-
ing of their synergies to yield the necessary expertise. The study material could easily encompass a
dozen or more books and manuals, but even together they would not deliver the necessary perspective
that fully embodies the field as a whole and guides the student in pursuit of an effective path to achieve
sufficient expertise.
This textbook is designed to bridge the gap between myriad sources of narrow focus and the need
for a single source that spans and interconnects the range of disciplines comprising the HPC field. It is
an entry-level text requiring a minimum of prerequisites, but provides a full understanding of the do-
mains and their mutual effects that make supercomputing an interdisciplinary field. From a practical
point of view, this textbook builds valuable and specific skill-sets for parallel programming, debug-
ging, performance monitoring, system resource usage and tools, and result visualization among other
useful techniques. These skills are provided in the reinforcing context of basic foundational concepts
of prolonged relevance, and knowledge of detailed attributes of hardware and software system com-
ponents more likely to evolve over time.
The textbook is chartered as support for a single-semester course for beginners to prepare them-
selves for a diversity of roles in supercomputing to pursue their chosen professional career goals. It
is appropriate for future computational scientists who are dedicated to the use of supercomputers to
solve science, engineering, or societal-domain applications, among others. It provides a base-level
description of possible target capabilities for system designers and engineers in hardware and software.
It also is a foundation for those who wish to proceed as researchers in supercomputing itself, as an
introductory presentation of conventional systems and practices as well as a representation of the chal-
lenges facing this exciting domain of exploration. The book is equally appropriate for those engaged in
supporting supercomputing environments, such as data centers and system administrators, operators,
and management. In informing future professionals, the textbook can be used in multiple ways. It
serves as a reference work of basic information for supercomputing. It provides a sequence of lecture
content for classroom delivery. It supports a hands-on approach with substantial examples, all of which
can be executed on parallel computers, and exercises to guide students as they learn by doing. It makes
clear where skill-sets and training are presented, with an easy-to-learn tutorial style. Concepts are pre-
sented in a detailed but accessible form to establish the “why” of methods conveyed and assist future
users in decision-making based on fundamental truths, factors, and sensitivities. Finally, this book
unifies within the same context the many sets of facts associated with the multiplicity of subdisciplines
that in combination make up the field of supercomputing.

xxi
xxii PREFACE

ORGANIZATION OF THIS BOOK


This textbook serves as a bridge between the reader’s initial curiosity, interests, and requirements in
HPC and the ultimate knowledge, capabilities, and proficiency to be acquired through its study. It is
a starting point for those in pursuit of a number of different possible professional paths that share a
common foundation in the nature and use of these state-of-the-art systems. Whether the reader intends
ultimately to be able to build hardware or software systems, use such systems as a critical tool in the
pursuit of other fields in science, engineering, commerce, or security, conduct research to devise future
means of pushing the state of the art in HPC, or administer, manage, and maintain HPC systems for
other users, the textbook is structured to create a seamless flow of topics, each benefiting from those
preceding while contributing to the foundations supporting those following. Thus the book presents its
major subjects in an order that provides early basic skills of HPC use even as it conveys underlying
concepts upon which a deeper understanding of these complex systems and their use is based. Where
necessary, an introductory view of a topic is given with enough information to consider other topics
that are dependent, only to return in greater depth in later chapters. The readers’ understanding and
capabilities are ratcheted up through incremental enhancement across the diversity of interrelated
topical areas.
The textbook is about computing performance. For current and next-generation systems, this means
the use and exploitation of workload parallelism to achieve scalability and the means of managing data
to achieve efficiency of operation. The four principal overarching subject domains are listed below.
• System hardware architecture, and enabling technologies.
• Programming models, interfaces, and methods.
• System software environments, support, and tools.
• Parallel algorithms and distributed data structures.
This would suggest an obvious pedagogical organization of the textbook based on a logical flow.
But there is another dimension to HPC: alternative strategies for organizing and coordinating paral-
lelism and data management, and the roles of each of the component layers that contribute to them.
This book presents four major strategies.
• Job stream parallelism, throughput, or capacity computing.
• Communicating sequential processes, or message passing.
• Multiple-threaded shared memory.
• SIMD or graphics processing unit (GPU) accelerated.
From a pedagogical perspective, the authors wish to convey three kinds of information to facilitate
the learning process and hopefully also the enjoyment of the reader. At the foundational level are the
concepts that establish understanding of the underlying principles that guide the form and function of
HPC. There is a lot of basic information as well as some cultural (who, what, when) facts making up
the necessary collection of knowledge that provides the framework (scaffolding) of the field. Finally,
there are the skill-sets that teach how to do things. While admittedly not orthogonal to each other, the
textbook approaches the presentation of all the material in each case as one of these three forms. For
example, chapters with headings that begin “The Essential.” (such as “The Essential OpenMP”) are
crafted as skills modules with a tutorial presentation style for easiest learning. While the mixing of
concepts and knowledge is unavoidable, separate sections emphasize one or the other. The importance
PREFACE xxiii

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.

I. INTRODUCTORY AND BASIC IDEAS (CHAPTERS 1 AND 4)


These chapters provide a firm grounding on the basics, including an introduction to the domains of
execution models, architecture concepts, performance and parallelism metrics, and the dominant class
of parallel computing systems (commodity clusters). They give a first experience with running parallel
programs through the use of a special kind of benchmarks that allow measurement and comparisons
among different HPC systems. It is here that a sense of the history, the evolution of the contributing
ideas, and the culture of the field is first given to the reader.

II. THROUGHPUT COMPUTING FOR JOB-STREAM PARALLELISM


(CHAPTERS 5 AND 11)
Although among the simplest ways to take advantage of parallel computers, throughput computing
(also referred to as capacity computing) as widely used is sufficient for many objectives and
workflows. It can also prove to be among the most efficient, as it usually exhibits the most coarse-
grained tasks and a minimum of control overheads. Widely used middleware that manages
job-stream workloads such as SLURM and PBS are given in tutorial form for both independent
jobs and related sets, such as parameter sweeps and Monte Carlo simulations.

III. SHARED-MEMORY MULTITHREADED COMPUTING (CHAPTERS 6 AND 7)


One of the dominant models of user parallel processing is task (or thread) parallelism in the context of
shared memory. All the user data can be directly accessed by any of the user threads, and sequential
xxiv PREFACE

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.

IV. MESSAGE-PASSING COMPUTING (CHAPTER 8)


For truly scalable parallel computing that may employ a million cores or more on a single application,
the distributed-memory architecture and communicating sequential processing execution model is the
dominant approach. This part of the book builds on topics associated with the nodes used for SMPs and
the cluster approach previously described for throughput computing by adding the semantics of mes-
sage passing, collective operations, and global synchronization. It is in this section that message-
passing interface (MPI) is taught, the single most widely employed programming interface for scalable
science and engineering applications.

V. ACCELERATING GPU COMPUTING (CHAPTERS 15 AND 16)


For certain widely used dataflow patterns, higher-level structures of specialized cores can provide
exceptional performance and energy efficiency. Such subsystems, classified in the most general sense
as “accelerators,” can speed up applications by many times, sometimes by over an order of magnitude.
Also referred to as GPGPUs, these often take the form of attached array processors, but in some cases
are being integrated within single-socket packages or even the same die. This part of the textbook de-
scribes GPU structures, available products, and programming, with an emphasis on one programming
interface, OpenACC.

VI. BUILDING SIGNIFICANT PROGRAMS (CHAPTERS 9, 10, AND 12e14)


By this point in the book the reader is well acquainted with the primary modes of HPC, knows the rules
for the principal programming interfaces, and has hands-on experience with making basic parallel
functions work within these frameworks. But for more complicated, more sophisticated, more useful,
and frankly more professional supercomputing programs a number of additional methods and tools are
required. This segment of the textbook takes the HPC novice from the beginner level to that of useful
apprentice. Several key topics and skills are introduced here to give the student the necessary abilities
to be useful in system design and application. First among these is a broad array of parallel algorithms
for a diverse set of needs. Many of these are already made available in collections known as “libraries”
that can save the application developer an enormous amount of time, if appropriately used. To get a
program from its first draft to its final correct and efficient form requires a combined approach
involving parallel debugging for correctness of answers and performance optimization through oper-
ation monitoring. Tools and methods for both are presented here, including the detailed skill-sets
required. Finally, HPC runs tend to produce enormous amounts of datadas much as terabytes or peta-
bytes of results in a single execution. Scientific visualization, the producing of images or even movies
from such massive datasets, is the only practical way to achieve understanding of the results of a tech-
nical computing simulation. Examples of widely used tools for this purpose are presented, with essen-
tial techniques to make them useful.
PREFACE xxv

VII. WORKING WITH THE REAL SYSTEM (CHAPTERS 11 AND 17e23)


The HPC system does not operate in a vacuum, and is of little value if it is not connected with the
outside world. Throughout the book the reader is exposed to necessary bits of the system environment,
but these chapters give a focused and comprehensive description of the operating system and its inter-
face to the outside world. In particular, mass storage is described at both hardware and software levels
for persistent storage of large blocks of data through the file system. As an example of the use of the file
system, the map-reduce algorithm, which is very popular for big-data problems, is described in detail.
The file system is also used to improve reliability through a method of checkpoint-restart. This tech-
nique periodically stores a snapshot of the intermediate data state of an application on mass storage
in case a fault occurs in the system. Should this happen, the application program can be restarted
not from the beginning but rather at the last known good checkpoint, thus saving a lot of time to
get to a solution.

VIII. NEXT STEPS


At this point the reader will have come to the end of his or her introduction to HPC. But where does the
reader go from here? There is much more to the field of such systems and their use than could be incor-
porated in any single textbook, although a good job of it has been done here. It is useful for the student
to have a clear picture of what is out in front and, depending on one’s interests or goals, which areas to
pursue next. This chapter maps out the space of HPC beyond that contained in this text, and highlights
the different areas as they relate to distinct professional objectives. But there is another dimension to
the next steps: where is the field of HPC going itself, for it is changing very rapidly? The chapter con-
cludes with a high-level description of the challenges facing HPC and the opportunities driving it
forward.

WHO CAN BENEFIT FROM THIS TEXTBOOK?


This book is constructed so that the widest readership with diverse backgrounds can with a high prob-
ability of success take on the subject matter. For this reason it has been crafted with the minimal pre-
requisites of a working knowledge of programming in the C language and a familiarity of working
within the context of a Unix-like operating system. But it is understood that even these requirements
may be too stringent for some. For this reason, the appendix of the book includes two tutorials. One,
“The Essential C,” provides sufficient descriptive details in tutorial form to use the C programming
language. It is not a primer of computer programming, as it is expected that the student has experience
writing programs with some other programming language like Python, Java, Fortran, or MATLAB, but
this tutorial is sufficient to support your needs through all the examples and exercises. Second, “The
Essential Linux for Users,” gives all the user interface descriptions and techniques that are required to
fulfill all the tasks employed in this textbook.
This textbook may serve a broad community of possible readers including (but not limited to):
• Research scientists
• Computational scientists in end science, engineering, and societal domains
• HPC research faculty
Other documents randomly have
different content
The Project Gutenberg eBook of Die Säge: Ein
Rückblick auf vier Jahrtausende
This ebook is for the use of anyone anywhere in the United States
and most other parts of the world at no cost and with almost no
restrictions whatsoever. You may copy it, give it away or re-use it
under the terms of the Project Gutenberg License included with this
ebook or online at www.gutenberg.org. If you are not located in the
United States, you will have to check the laws of the country where
you are located before using this eBook.

Title: Die Säge: Ein Rückblick auf vier Jahrtausende

Author: Franz M. Feldhaus

Release date: June 2, 2019 [eBook #59659]

Language: German

Credits: Produced by Peter Becker and the Online Distributed


Proofreading Team at http://www.pgdp.net

*** START OF THE PROJECT GUTENBERG EBOOK DIE SÄGE: EIN


RÜCKBLICK AUF VIER JAHRTAUSENDE ***
DIE SÄGE
EIN RÜCKBLICK AUF VIER
JAHRTAUSENDE

VON

FRANZ M. FELDHAUS
INGENIEUR

HERAUSGEGEBEN UND VERLEGT VON

J. D. DOMINICUS & SOEHNE G.M.B.H.


BERLIN SW. 68
REMSCHEID-VIERINGHAUSEN
NACHDRUCK VERBOTEN
Copyright 1921
by J. D. Dominicus & Soehne G. m. b. H.
Berlin-Remscheid
DIE SÄGE
EIN RÜCKBLICK AUF VIER
JAHRTAUSENDE

VON

FRANZ M. FELDHAUS
INGENIEUR

MIT 66 ABBILDUNGEN NACH ALTEN ORIGINALEN


HERAUSGEGEBEN UND VERLEGT VON

J. D. DOMINICUS & SOEHNE G. M. B. H.


BERLIN SW. 68
UND REMSCHEID-VIERINGHAUSEN
o der Mensch vor vielen hundert
Jahrtausenden seine werktätige Laufbahn
begann, nahm er den Dorn des Waldes, den
spitzigen Stein und den scharf gebrochenen
Knochen eines verendeten Tieres, um zu
schaben, zu bohren, zu glätten. Es gab keine
Werkleute und keine Werkstattsregeln.
Tastend mußte jeder Urmensch den Widerstand der Materie zu
überwinden suchen. Was gab es auch viel zu tun? — Die ersten
Menschen trugen Waffen und Werkzeuge noch als Gaben der Natur
bei sich: muskulöse Kiefer mit starken Zähnen, lange Arme mit
kraftvollen Händen und einen gedrungenen Körperbau auf Füßen,
die den Händen gleich gebrauchsfähig waren. Keine Sorge um
Wohnung, Kleidung und Gerät. Nur ein kleines Hirn, das die Listen
des Tieres und die widrigen Naturgewalten überlisten wollte.
Hunderte von Jahrtausenden, Zeiten von einer Ausdehnung,
gegen die die paar tausend Jahre unserer Kultur winzig sind, mußten
vergehen, bis die Urmenschen sich Arbeitsmethoden zu eigen
machten. Von da ab bewahrten sie in ihren Höhlen den spitzen Stein
als Bohrer, den knolligen als Hammer, den scharfkantigen als
Schneidewerkzeug. Und dann begann der Wettkampf, denn wer das
schärfste Messer hatte, bekam vom gefallenen Wild das größte
Stück. Und neben dem Hunger waren es Habsucht und Geiz und
Selbstsucht und Roheit, die unsere Ur-Urväter zur Verbesserung ihrer
Lebensbedingungen trieben und sie zur Erzeugung neuer Werke mit
immer neuen Werk-Zeugen zwangen.
So finden wir denn in den ältesten sichtbaren Siedelungen der
Menschen tief unter der heutigen Erdoberfläche rohe steinerne Äxte,
steinerne Schaber, steinerne Messer, steinerne Bohrer und Pfrieme,
steinerne Pfeilspitzen, knöcherne Nadeln, Angelhaken und Harpunen,
und Schleifsteine für solche Knochenwerkzeuge. Funde dieser Art,
aus der sogenannten älteren Steinzeit, sind zum Teil weit über 25000
Jahre alt.
In der jüngeren Steinzeit, die in Mitteleuropa zwischen 5000 bis
2000 Jahre vor unserer Zeitrechnung liegt, werden die steinernen
Waffen und Werkzeuge in ihren Arten nicht nur vermehrt, sondern
an den Arbeitskanten und auf den Oberflächen auch sorgsam
geschliffen und poliert. Wir werden bald hören, wie die jüngere
Steinzeit mit Säge und Sägemaschine zu schaffen wußte.

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.

Steinerne Säge, um 3500 vor Chr.


Wie die Säge in der älteren Steinzeit aussah, erkennen wir an
einem (s. Abb.) schönen, handgroßen Stück einer bei Flensburg
gefundenen Säge aus Feuerstein, die sich im »Museum für
Völkerkunde« in Berlin befindet. Es ist deutlich zu erkennen, daß die
schwach gebogene Kante dieses Stücks absichtlich gezähnt ist.[1]
Eine hölzerne Schäftung solcher steinernen Sägen ist erst aus der
jüngeren Steinzeit bekannt. Auch Schäftungen aus Horn kommen
damals vor.[2]
Diese gezähnten steinernen Sägen wurden zur Zerteilung von
Holz benutzt. Wollte man Steine zerteilen, dann benutzte man ein
aus dem Holz herausgespaltenes dünnes Brett, das man unter
Zugabe von scharfem Sand schleifend über den Stein bewegte.

Rekonstruierte Sägemaschine für Steine,


um 3500 vor Chr.
Wir haben aus der jüngeren Steinzeit, als man die steinernen
Waffen und Werkzeuge an ihren Oberflächen sorgsam schliff,
wiederholt Steinbrocken gefunden, die eigentümliche Sägeschnitte
aufweisen. Sägt man mit einer steinernen oder hölzernen Säge,
dann wird der Schnitt am Anfang und am Ende gewöhnlich tiefer in
das Material hineingehen, als in der Mitte des Werkstückes. Der
Schnitt wird um so mehr konvex verlaufen, je ungeübter oder
sorgloser die menschliche Hand arbeitet. Bei den aufgefundenen
Steinbrocken verläuft der Schnitt aber konkav, d. h. er hat in der
Mitte des Werkstücks seine tiefste Stelle. Das läßt sich erklären,
wenn man eine besondere Sägemaschine annimmt. An der gleichen
Fundstelle sind die in den Steinen liegenden Bogen stets die
gleichen. Mithin ging die Säge in einer Führung mit gleichbleibendem
Radius (s. Abb.). Der Straßburger Archäologe Robert Forrer hat an
Hand solcher Steinfunde eine Sägemaschine rekonstruiert, wie sie
rund ums Jahr 3500 vor unserer Zeitrechnung benutzt wurde. Sie
entspricht im Aufbau einer gleichzeitigen Steinbohrmaschine.[3] Wir
erkennen auf einem Grundbrett A eine Säule B, sie trägt auf einem
Holzzapfen oben in einer Bindung einen wagerecht liegenden Hebel
C. Damit dieser Hebel nicht seitlich ausweichen kann, wird er von
zwei Balken E, die oben durch Bindung im nötigen Abstand gehalten
werden, geführt. Auf den Hebel ist ein Stein D gebunden, um beim
Sägen einen gleichmäßigen Druck zu geben. Der schon erwähnte
Sägearm F trägt unten in einem Schlitz die steinerne oder hölzerne
Säge. Wird sie über den darunterliegenden Werkstein
hinweggeführt, dann entsteht — bei hölzernen Sägen unter
Hinzugabe von Sand — der Sägeschnitt. Selten wird man diesen
Schnitt tief in den Stein hineingeführt haben. Dann drehte man den
Stein um und sägte von der anderen Seite einen gleichen Schnitt, so
daß man den Stein zwischen den beiden Schnitten zerschlagen
konnte.[4]
Bronzene Sägeblätter aus Ägypten.
Die ältesten metallenen Sägen, die wir kennen, stammen aus
Ägypten.[5] Es sind winzige Bruchstücke von bronzenen Sägeblättern,
teils mit feiner, teils mit grober Zahnung. Zwei Originale aus Fayum
in Ägypten sind auf Seite 8 abgebildet. Das Sägeblatt mißt von Loch
zu Loch 560 mm, die Bügelsäge am Blatt innerhalb der Bügel 690
mm.
Wie man mit Bronzesägen arbeitete, erkennen wir aus den
Reliefs der berühmten Grabkammern eines ägyptischen
Totenpriesters, namens Ti, der ums Jahr 2700 v. Chr. bei Sakarah in
Ägypten beigesetzt wurde. Es ist eine lange Reihe von Handwerkern
bei den verschiedensten Verrichtungen dargestellt, so auch die hier
wiedergegebenen Säger (Seite 10).[6]
Rechts hockt der Mann, der mit der linken Hand ein Brett hält
und es mit der bronzenen Säge zersägt. Links sägt ein Mann
stehend. Das Brett ist hier an einem kürzeren Pfahl angebunden. In
der Bindung steckt ein Hebel, der durch einen, an einem Seil
hängenden Stein beschwert ist. Hier ist die Darstellung wohl
ungenau, denn der Stein würde den Sägeschnitt zusammenpressen.
Vermutlich müssen zwei verschiedene Bindungen vorhanden
gewesen sein. Die eine hielt das Brett an einem Pfahl fest, während
die andere den kleinen Hebel hielt. Dieser war wohl am unteren
Ende zugespitzt, steckte mit dieser Schneide im Sägeschnitt und
öffnete ihn beim Fortschreiten der Säge immer mehr. Auch auf
anderen ägyptischen Darstellungen ist der sägende Holzarbeiter zu
sehen, so z. B. auf Seite 9, die eine Malerei aus dem Grab des
Rekhmara von etwa 1450 v. Chr. zeigt.[7]

Ä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.

Unterteil einer steinernen Gußform für 4 bronzene


Sägen, aus Skane in Schweden, um 1500 vor Chr.
Wie die Sägen der Bronzezeit um's Jahr 1500 v. Chr. aussahen,
wissen wir nicht nur aus Funden von Sägen, sondern auch aus
Funden von steinernen Gußformen (Seite 11). Vergleicht man die in
schweizerischen Pfahlbauten gefundenen Sägen mit denen der
Nordländer, dann muß man zu der Annahme kommen, daß man in
Mitteleuropa damals kleine Bronzesägen in Form gerader Stichsägen
verwendete. Das Blatt verjüngt sich zur Spitze hin nur wenig. An
einem Ende hat es ein Loch, um es im Handgriff festzuhalten. Ein
Exemplar aus dem Pfahlbau Möringen, das sich jetzt im
Landesmuseum zu Zürich befindet, ist 140 mm lang und an den
Zähnen nicht ganz 2 mm breit.
Die nordischen Sägen haben eine eigenartige Form, die sich
sowohl an gefundenen Originalstücken, wie auch an Gußformen
findet. Ihre Länge schwankt zwischen 12 und 18 cm. Höcker am
Rücken müssen zu einer bisher nicht bekannten Art der Schäftung
gedient haben[8].
Die Bronzesäge ging auch in den griechischen Kulturkreis über.
Auf Seite 12 ist eine feine, bronzene Knochensäge mit
angegossenem Griff abgebildet, wie sie ums Jahr 200 v. Chr. von
griechischen Ärzten bei Amputationen benutzt wurde. Die ganze
Länge dieses zu Ephesos gefundenen Stückes mißt 205 mm[9].
Die römischen Schriftsteller verlegten die Erfindung der Säge in
die Zeit, da der sagenhafte Daedalos zu Athen lebte. Und sie
erzählen: Thalos, ein junger griechischer Künstler, der bei Daedalos
in der Lehre war, fand einst die Kinnlade einer Schlange, die er
spielend an einem Holz hin- und herrieb. Da bemerkte er, daß die
Zähne in das Holz einschnitten und das Holz sich so teilen ließ. Dies
brachte ihn auf den Gedanken, ein Werkzeug zu machen, das die
Schärfe der Zähne der Schlange nachahmte. Er nahm also ein Stück
Metall, schnitt nach dem Muster der kleinen, kurzen und eng bei
einanderstehenden Zähne der Schlange Zacken hinein und so
entstand die erste Säge. Der Erfinder soll damals erst 12 Jahre alt
gewesen sein. Daedalos sei auf seinen Lehrling wegen dieser
Erfindung so neidisch geworden, daß er den Thalos von der Burg zu
Athen hinabstürzte und deshalb flüchtig werden mußte. Daedalos
ging nach der Insel Kreta, wo er das berühmte Labyrinth gebaut
haben soll. Doch er »haßt indessen die kerkernde Kreta, wohin ihn
lange verbannt das Geschick. Und, gelockt von der Liebe der
Heimat, war er umschlossen vom Meer. So werde denn Land und
Gewässer, rief er, gesperrt, doch öffnet der Himmel sich: dort sei die
Laufbahn!« Und wir wissen, daß die Sage uns vom Flug des
Daedalos und des Ikaros berichtet, noch ehe wir Kunde von einem
menschlichen Flugversuch haben[10].
Daedalos wird im Altertum mit einer Säge in der Hand abgebildet
(Seite 13). Hier sehen wir ihn mit diesem Werkzeug vor der von ihm
angefertigten hölzernen Kuh, die er für die Gattin des Königs Minos
lebenswahr gebildet hatte[11].
Betrachten wir die Darstellungen von Sägen auf Bildwerken des
Altertums, dann dürfen wir nicht allzuviel technische Kritik
aufwenden, denn der Künstler ging damals — und geht noch heute
— bei der Gestaltung realer Dinge von ästhetischen Gesichtspunkten
aus. Und dann müssen wir beachten, daß die feinen Einzelheiten
einer Säge, zumal die Zahnform, auf bildlichen Darstellungen leicht
verloren gehen und auch von den Altertumsforschern, die die
antiken Denkmäler ehemals abzeichneten, wohl nicht allzu sorgsam
wiedergegeben worden sind.

Griechische medizinische Bronzesäge (Griff gekürzt), um 200 v. Chr.


Daedalos mit der Säge. Antikes Relief.
Wie schlecht die Archäologen technische Dinge sehen können,
erkennen wir aus der Betrachtung eines alten Gemmenbildes (Seite
15), das einen »Herkules mit der Säge« darstellen soll. Tatsächlich
hat Herkules das Löwenfell hinter sich. An seinem linken Arm sehen
wir es deutlich nach unten hängend. Die am Fell sitzenden Krallen
des Löwen sind als vier Zier-Kugeln gezeichnet. Die gleichen Kugeln
erkennen wir unten an der »Säge«, die nichts anderes, als die
zottige Fell-Kante ist! So hat also dieser Herkules gar keine Säge bei
sich. Das Original der Gemme würde, wenn man es ohne Vorurteil
ansähe, sicherlich eine viel ungezwungenere Form der Fellkante und
wohl auch der Krallen des Felles zeigen. Die in Florenz erhaltene
Gemme soll etruskisch sein[12]. Es hätte den Altertumskennern doch
auffallen müssen, daß Herkules mit der Säge auftritt. Ich wüßte
nicht, bei welcher seiner »Taten« er sie benutzt haben sollte.

Zwei Säger. Römisches Alabaster-Relief.


Herkules, angeblich mit Säge. Antike
Gemme.
Es sind noch manche andere Zeichnungen der Archäologen von
Werkzeugen, Geräten und Maschinen falsch gedeutet worden[12a].
Im Museum zu Volterra in Italien befindet sich eine römische
Alabastervase (Seite 14), auf der man sieht, wie zwei Männer einen
aufrechtstehenden Balken zersägen[13]. Und das gleiche Museum
besitzt eine Vase aus Tuffstein, auf der die Handhabung einer
römischen Rahmensäge klarer zu sehen ist (Seite 16)[14].
Zwei Säger. Römisches Relief um's
Jahr 325 nach Chr.
Auf einem Altarstein aus der Zeit des römischen Kaisers
Domitianus, der von 81 bis 96 regierte, sind unter verschiedenen
Werkzeugen eine Rahmensäge und eine Schrotsäge abgebildet
(Seite 20). An beiden erkennt man deutlich die stark geneigte
Dreiecksverzahnung und den gewölbten Rücken des Sägeblattes. Die
Rahmensäge ist mit Nägeln in den Rahmen eingehangen. Das Blatt
konnte also nicht, wie bei uns, gedreht werden. Die Schrotsäge ist
an den Enden verstärkt und länglich durchlocht[15].
Dieser Altarstein wird im Capitolinischen Museum der Stadt Rom
aufbewahrt.
Römische Säger. Tuffstein-Relief.
Im Jahre 1883 fand man in Deneuvre (Departement Meurthe-et-
Moselle) einen Stein mit dem hier neben wiedergegebenen Relief. Da
man gleichzeitig eine Münze des römischen Kaisers Constantinus
fand, kann man diese Darstellung auf etwa 325 nach Chr. datieren.
Wir sehen in einer Nische die Darstellung eines auf gespreizten
Beinen stehenden Sägebockes. Auf ihm liegt — was an dem arg
beschädigten Stein nicht mehr sichtbar ist — das zu sägende Bord.
Ein Säger steht auf dem Bock, der andere darunter. Die Säge ist so
stark beschädigt, daß sie nicht mehr in den Einzelheiten zu erkennen
ist. Ja, das über dem Bord herausragende Stück der Säge verläuft
wesentlich anders, als das unten sichtbare[16].

Bronzene römische Stichsäge.


Die Altertumswissenschaft hat diese Darstellung bisher stets für
eine Säge gehalten, und obwohl ich wegen des eigenartigen Verlaufs
des Sägeblattes erhebliche technische Bedenken habe, gebe ich die
Darstellung hier wieder. Ich wüßte keine andere Erklärung für sie.
Vielleicht ist der obere Teil des Sägeblattes so weggebrochen, daß
man den Bruch nicht mehr erkennen kann, die helle Bruchstelle
unterhalb der Hände des oberen Sägers kann ja auch zum
Hintergrund gehören.

Bruchstück eines römischen Sägeblattes


um 250 nach Chr.
Funde römischer Sägen bieten im Vergleich zu den bisher
besprochenen Darstellungen auf Denkmälern nichts Neues. Meist
kamen nur die Sägeblätter, und auch diese nur bruchstückweise, zu
Tage. Eine in Rom gefundene Bronzesäge mit Heft ist hier auf Seite
17 abgebildet[17].

Primitive römische Säge um 250 nach


Chr.

Diesseits der Alpen fand man im Römerkastell Saalburg die hier


auf Seite 17 bis 18 abgebildeten Sägen aus Eisen. Das auf Seite 17
(unten) dargestellte Stück ist das eine Ende von einem Blatt einer
Rahmensäge. Wir sehen rechts die Öse zum Einhängen des Blattes.
Der dritte Fund auf Seite 18 (oben) beglaubigt, daß der römische
Kulturkreis für Schrotsägen eine Verzahnung kannte, die auf jedem
Zahn eine Art Vorschneider trägt[18].

Eisernes römisches Sägeblatt mit Vorschneidern an den Zähnen


um 250 nach Chr.
Auffallend ist, daß man auf der Saalburg wohl erhaltene hölzerne
Arme zu Rahmensägen fand [19], die eine recht ungünstige
Anordnung der Spannung zeigen. Unser Mittelbaum ist hier so
beiseite gerückt worden, daß bis zur Spannkordel ¼, bis zu den
Nieten des Sägeblattes etwa ¾ Abstand ist. Bedingt wurde diese
Anordnung dadurch, daß die Römer, wie wir auch auf Seite 19
sehen, drehbare Hefte zur Verdrehung der Sägeblätter nicht
kannten.

Römische Rahmensäge um 250 nach Chr.

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.

Symbolische Säge, Malerei des 10. Jahrhunderts, aus


einer Bibel zu Paris.
In einer lateinischen Bibel des 10. Jahrhunderts ist eine große
Säge abgebildet, die einem Heiligen durch den Kopf gezogen wird.
Die Zeichnung ist wohl ungenau, weil an dem Rahmen keine
Spannung für das Sägeblatt zu sehen ist.[24].
Eine frühe mittelalterliche Malerei des Sägens findet sich in einer
kostbaren Bilderhandschrift im Kloster Monte-Cassino in Italien. Die
Handschrift ist im Jahre 1023 entstanden, enthält eine Übersicht
über das menschliche Wissen und Können und ist mit vielen
Malereien geziert. Wir sehen hier unten zwei Arbeiter, nach
damaliger Sitte wenig bekleidet, beim Sägen. Das Bild gehört zum
Abschnitt »Über den Marmor« und soll darstellen, wie eine Säule aus
buntem Marmor in Platten zersägt wird. Wir sehen unten die
hölzerne Befestigung der Säule, oben aber eine Rahmensäge, wie sie
die Tischler benutzen[24a]. Der Maler hat nicht bedacht, daß man
Steine mit einer ungezähnten Säge zerteilt.

Rahmensäge ohne drehbares Sägeblatt. Malerei


aus dem Jahre 1023.

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.

Selbsttätig arbeitendes Sägewerk mit Wasserradbetrieb. Reiseskizze um 1245.


Ein selbsttätig arbeitendes Sägewerk mit Wasserkraft wird von
dem um 1245 wirkenden französischen Ingenieur Wilars entworfen
(unten). Bei der Skizze steht nur vermerkt: »Auf diese Art macht
man eine Säge, um selbsttätig zu sägen.« Um die Skizze besser
verständlich zu machen, habe ich Buchstaben eingefügt: a stellt den
Bach dar, der das unterschlägige Wasserrad b treibt, auf dessen
Wellbaum die vier Daumen c sitzen. Diese drücken die Hebel d und
mit ihnen die Säge e nieder, die durch den federnden Baum f wieder
hochgezogen wird, g ist der in den Führungen h gleitende Balken,
den das Zackenrad i gegen die Säge vorschiebt.

Symbolische Säge, mit der ein Herz zersägt wird.


Stickerei um 1350–1400.
Diese Zeichnung des Wilars ist ein interessantes Beispiel für die
Projektionsart des Mittelalters, die einen noch so komplizierten
Apparat in einer einzigen Ebene klar und deutlich darzustellen
imstande ist. Im ersten Moment vermutet wohl niemand in dem
hoch oben schwebenden Rad ein Wasserrad, doch wenn man sich in
diese Darstellungsart hineingelebt hat, gewinnt auch der Laie
hieraus schneller ein Verständnis von einer Maschine, als aus unserer
dreiseitigen Projektionsart. Ebensoviel Großzügigkeit wie Wilars und
viele seiner Nachfolger in diesen Darstellungen bekunden,
ebensoviele Fehler und Unmöglichkeiten bergen sie darinnen. Es
würde hier z. B. nach der Stellung der Schaufeln am Rad b der zu
sägende Balken g durch das Zackenrad i von der Säge weg statt
gegen sie bewegt werden. Es müßte das Transportrad i im
Gegensatz zum Wasserrad b viel kleiner sein. Es müßte endlich das
Hebelwerk d genauer angegeben werden.
Wilars war ein weitgereister französischer Architekt und
Ingenieur, der in einem uns erhalten gebliebenen Skizzenbuch
verschiedene Maschinen, Brücken und Bauwerke aufgezeichnet
hat[26], die er auf seinen Reisen kennen gelernt.
Das älteste in Deutschland beglaubigte Sägewerk mit
Wasserbetrieb war die Hanrey-Mühle in Augsburg, die für das Jahr
1322 nachweisbar ist[27].
Soweit sich die Chroniken der deutschen Städte übersehen
lassen, wird erst weit über hundert Jahre später von einer andern
deutschen Sägemühle aus Breslau berichtet, die im Jahr 1427 in
einer Pacht-Abrechnung genannt wird[28]. 1490 kaufte Erfurt einen
Wald, um eine Sägemühle darin anzulegen[29].
Eine prächtige Stickerei in Seide und Gold (Seite 25), die aus
dem Besitz der Grafen von Champagne stammt, wird im Schatz der
Kathedrale zu Troyes aufbewahrt[30]. Die Kleidung der Figuren läßt
darauf schließen, daß dieses Stück, das wohl ein Geldbeutel oder
Klingelbeutel gewesen ist, aus der Zeit von 1350–1400 stammt. Zwei
Frauen sägen mit einer Rahmensäge ein menschliches Herz. Es soll
sinnbildlich dargestellt werden, daß die Frauen den Männerherzen
blutige Schmerzen bereiten. Rettend kommt aus einem
Wolkengebilde eine Hand mit einem Beil, um die Säge zu
zerschlagen. Vom Himmel her kommt also den irdischen
Liebesschmerzen die einzige Rettung.
Der Nürnberger Bürger Konrad Mendel stiftete 1380 ein Asyl für
zwölf alte, jedoch gesunde arme Handwerker. Jedes Mitglied der

You might also like