Immediate download Principles of Parallel Scientific Computing A First Guide to Numerical Concepts and Programming Methods Undergraduate Topics in Computer Science Tobias Weinzierl ebooks 2024
Immediate download Principles of Parallel Scientific Computing A First Guide to Numerical Concepts and Programming Methods Undergraduate Topics in Computer Science Tobias Weinzierl ebooks 2024
com
OR CLICK HERE
DOWLOAD NOW
ebookmeta.com
https://ebookmeta.com/product/julia-bit-by-bit-programming-for-
beginners-undergraduate-topics-in-computer-science-noel-kalicharan/
ebookmeta.com
https://ebookmeta.com/product/nuclear-power-plant-development-
contract-issues-claims-and-disputes-1st-edition-dr-cyril-chern/
ebookmeta.com
Cleopatra 1st Edition H Rider Haggard
https://ebookmeta.com/product/cleopatra-1st-edition-h-rider-haggard/
ebookmeta.com
https://ebookmeta.com/product/dog-tricks-and-agility-for-dummies-2nd-
edition-sarah-hodgson/
ebookmeta.com
https://ebookmeta.com/product/university-of-florida-book-of-insect-
records-23rd-edition-thomas-j-walker-editor/
ebookmeta.com
https://ebookmeta.com/product/all-data-are-local-thinking-critically-
in-a-data-driven-society-the-mit-press-yanni-alexander-loukissas/
ebookmeta.com
Network Programming with Go Language 2nd Edition Ronald
Petty
https://ebookmeta.com/product/network-programming-with-go-
language-2nd-edition-ronald-petty/
ebookmeta.com
Undergraduate Topics in Computer
Science
Series Editor
Ian Mackie
University of Sussex, Brighton, UK
Advisory Editors
Samson Abramsky
Department of Computer Science, University of Oxford, Oxford, UK
Chris Hankin
Department of Computing, Imperial College London, London, UK
Mike Hinchey
Lero – The Irish Software Research Centre, University of Limerick,
Limerick, Ireland
Dexter C. Kozen
Department of Computer Science, Cornell University, Ithaca, NY, USA
Andrew Pitts
Department of Computer Science and Technology, University of
Cambridge, Cambridge, UK
Steven S. Skiena
Department of Computer Science, Stony Brook University, Stony Brook,
NY, USA
Iain Stewart
Department of Computer Science, Durham University, Durham, UK
This work is subject to copyright. All rights are solely and exclusively
licensed by the Publisher, whether the whole or part of the material is
concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in
any other physical way, and transmission or information storage and
retrieval, electronic adaptation, computer software, or by similar or
dissimilar methodology now known or hereafter developed.
The publisher, the authors and the editors are safe to assume that the
advice and information in this book are believed to be true and accurate
at the date of publication. Neither the publisher nor the authors or the
editors give a warranty, expressed or implied, with respect to the
material contained herein or for any errors or omissions that may have
been made. The publisher remains neutral with regard to jurisdictional
claims in published maps and institutional affiliations.
This Springer imprint is published by the registered company Springer
Nature Switzerland AG
The registered company address is: Gewerbestrasse 11, 6330 Cham,
Switzerland
Preface
Why This Book
I started to think about this manuscript when I got appointed as
Associate Professor at Durham University and had been told to read
numerical algorithms for computer scientists plus the parallel
programming submodule. In Durham, we teach this first submodule on
numerics in the third year of the computer science degree. It spans only
ten hours. Ten hours is ridiculously short, but I think it is enough to
spark interest in simulation codes and the simulation business.
Thinking about it, it is great that our numerics teaching runs parallel to
a parallel programming course. Numerical simulation without
parallelism today is barely imaginable, so this arrangement gives us the
great opportunity to use examples from one area in the other one. We
can co-teach the two things: numerics basics and parallel coding.
When we later designed our Master in Scientific Computing and
Data Analysis (MISCADA), it became clear that co-teaching the two
fields would be a good idea for this course, too. With a very
heterogeneous student intake—both by means of qualification, cultural
background, educational system, and discipline interest—we need to
run introductory courses that bring all students quickly to a decent
level, while numerical principles as well as parallel programming are
omnipresent. Obviously, the M.Sc.-level teaching progresses at a
different pace and, in Durham, also covers more lectures. Yet, some
content overlaps with the third year’s course.
There seems to be a limited amount of literature that discusses
parallel programming and (the basics of) numerical techniques in one
go and still remains easily accessible. There are many books that cover
scientific computing from a mathematics point of view. Many scientists
(including me) insist that a formal approach with a strong
mathematical background is imperative for research in scientific
computing. However, we have to appreciate that many of our
undergrads are enrolled in courses that are lighter on the mathematics
side or focus, for example, more on discrete maths. Some maths thus
might be a little bit rusty when students enter their third year. Our
mathematical textbooks run the risk that we lose out on students if
they orbit around the profound maths first. They might get bored
before they reach the point where they can program a first numerical
code that does “something useful”.
The other type of teaching literature that is out there combines the
first course in numerics with a programming tutorial. Although a lot of
the material I have seen is really good, this type of approach is ill-suited
for our students. Most of them are decent programmers already.
To make a long story short, I think that there is a need for courses
on numerics with a “rolling up your sleeves” and “get the rough idea
and make it work in code” attitude. Some students like to get their
hands dirty and write something “that does something” before they
start to dive into more details—for which excellent literature does exist.
I am also strongly convinced that it makes sense to teach introductory
scientific computing in combination with parallelisation. After all, we
want to have future Ph.D. students and colleagues who can help us with
the big simulation codes.
Mission Statement
Since we try to keep the theory light and hands-on, this book is not a
comprehensive overview of the vast field of numerical algorithms and
analysis, or even only a certain subfield. It neither is a rock solid
introduction to the difficulties, pitfalls and depths of programming in
high performance computing (HPC). It is
a rush through some basic numerical concepts that are omnipresent
when we write simulation software. We want to get an idea of how
some numerical things work—so we can eventually look them up in a
“real” maths book.
a numerics primer with implementation glasses on: For all of the
concepts, we want to have an idea of how to realise them on a real
machine or which impact they have on our codes.
a hands-on text. The best way to understand numerical concepts is to
program them or, even better, to see your own code fail and then find
a theoretical explanation (together with the fix) for the break down.
And it is close to impossible to learn parallel programming solely
from textbooks anyway.
a guide that makes students start to write simulation codes running
on parallel computers.
Acknowledgements
Thanks are due to numerous students who provided feedback.
Particular thanks are due to my colleagues Florian Rupp and Philipp
Neumann. They found tons of bugs and helped me to fix a lot of phrases.
Thanks are also due to Lawrence Mitchell for proofreading some of the
chapters with an HPC touch. Holger Schulz worked with me on the
ExCALIBUR/ExaClaw project throughout the write-up and helped me
quite a lot with the OpenMP-focussed chapters. Marion Weinzierl finally
was maybe the most critical reader, but eventually it had been her
comments and her support over all the years that made writing this
manuscript possible.
Affatto incerta è la valutazione delle monete antiche, e i ragguagli dati dagli eruditi
differiscono può dirsi in ciascuno, anche di buon tratto. Dopo degli altri, e perciò
profittando di tutti, ne ragionò Boeckh, Metrologische Untersuchungen über
Gewichte, Münzfüsse und Mässe des Alterthums in ihren Zusammenhange. Berlino
1838.
L’asse, prima unità monetaria romana, era una libbra da dodici oncie di bronzo non
coniato, æs rude. Un’impronta vi si pose sotto Numa o Servio Tullio, che fu una
pecora, donde il nome di pecunia.
La prima moneta d’argento fu battuta nel 485 di Roma, ed era il denaro (dena
æris), equivalente a dieci assi di bronzo: sua metà fu il quinario; suo quarto il
sesterzio, sesquitertius, cioè due assi e mezzo. Per comodo di cambio ebbero la
libella = 1 asse, o ad una libbra di rame; la sembella = 1⁄2 libbra; il teruncio = 1⁄4
libbra. In una libbra v’avea quaranta denari d’argento e voleansi dieci assi per fare
un denaro, sicchè la proporzione del rame all’argento era :: 400:1.
Al fine della prima guerra punica, l’asse fu ridotto da dodici oncie a due; e quindi il
denaro a 1⁄84 della libbra, ossia grani 73 333; essendo il grano di marco = 0 0531
gramme di peso metrico. La proporzione dunque fra l’argento e il rame monetato
era :: 84 × 10 : 6, ossia :: 140:1. Nell’anno di Roma 536, l’asse fu ridotto al peso
d’un’oncia, e il denaro, senza alterarne il valore, fu alzato a sedici assi, il quinario a
otto, il sesterzio a quattro; onde la proporzione dell’argento al rame coniato stette
:: 112:1. La legge Papiria del 562 abbassò l’asse a mezz’oncia di rame; il denaro
restò uguale, e valse ancora sedici assi; quindi la proporzione fra il rame coniato e
l’argento fu :: 1:56. Ma non era un valor mercantile, bensì arbitrario; l’asse non
restava più che moneta di conto; e unità monetaria divenne il sesterzio.
Questo sestertius non va confuso col sestertium, moneta di conto che valea mille
sesterzj. Spesso negli autori si trova sestertium, genitivo contratto di sestertiorum.
È marcato IIS o HS, cioè assi due e mezzo: e cogli avverbj semel, bis, ter, decies
esprime 100,000 sesterzj, presi una, due, tre, dieci volte. Così ter HS varrà
300,000 sesterzj.
I Romani nel 547 batterono la prima moneta d’oro alla ragione di uno scrupolo per
venti sesterzj; e abbiamo di tali monete coll’impronta del xx, xxxx, ix. La libbra
romana è ducentottantotto scrupoli; perciò conosciuto il peso dello scrupolo, s’avrà
la libbra. Le esperienze più squisite diedero grani 6154.
Mentre da principio in Roma l’aureus si riferiva allo scrupolo, dappoi si riferì
anch’esso alla libbra, come il denaro. Tale cambiamento non sappiano bene
quando si facesse, ma pare dopo Cesare; quantunque Eckhel (Doctrina
nummorum) neghi che durante la repubblica siansi coniate monete d’oro, per la
ragione che troppo bello n’è il conio, e somiglia a quello de’ Siciliani e de’ Campani.
Ma Roma non poteva adoperare a ciò qualche Greco?
Dopo il 705, la moneta d’oro fu la quarantesima parte della libbra, e venticinque
denari di valore. La proporzione dunque fra i due metalli era
:: 40×25 : 1,
84
ossia press’a poco come 12 a 1.
Ai tempi d’Erodoto, l’oro valea tredici volte l’argento; a quelli di Platone, dodici; alla
morte di Alessandro, dieci; e così al tempo del trattato fra gli Etolj ed i Romani.
In Italia non troviamo antiche miniere d’oro e d’argento, talchè sino al 247 avanti
Cristo non corse nella settentrionale che moneta di rame, e sembra che le colonie
della meridionale tirassero dalla Grecia l’argento per le monete loro. Roma esigeva
i tributi in argento, lo che mantenne l’oro ad una proporzione superiore alla greca.
Sotto gl’imperatori succeduti ad Adriano, la moneta andò in disordine: la
proporzione dell’oro coll’argento sotto Domiziano era di 11 1⁄2. Verso il regno di
Postumo l’argento scompare, poi ricompare con Diocleziano. Usandosi allora
moneta scadente, l’oro dovette crescere enormemente di prezzo e uscire d’Italia;
onde sotto Costantino la proporzione era di 1 a 15; sotto Teodosio il Giovane, di 1
a 18; ma al tempo di Giustiniano il troviamo ancora di 1 a 15.
Sebbene le monete deteriorassero di peso, il titolo restò quasi eguale, fra 0.998 e
0.991 di fino per l’oro, e per l’argento da 0.993 a 0.965. Regolator del valore era
l’oro, come oggi in Inghilterra; perciò conservasi inalterato di peso e di titolo, e una
Novella di Valentiniano III porta: — L’integrità e inviolabilità del segno favoriscono
il commercio, e mantengono la stabilità del prezzo delle cose venali».
Così valutando, senza tener conto delle spese di monetazione, Letronne riscontra il
denaro d’argento dalla repubblica sino a Domiziano rappresentare un valore da
centesimi 83 fino a 70, ossia precisamente:
MONETE EPOCHE
MISURE LINEARI
MISURE DI SUPERFICIE
Pedes Scripulum Clima Actus Jugerum Heredium Centuria Saltus ettare are metri
q. q.
100 1 8
3,600 36 1 3 8
14,400 114 4 1 12 34
28,800 188 8 2 1 24 68
57,600 576 16 4 2 1 49 36
4 2 98 72
6 3 1 48 8
8 4 1 97 44
L’unità dei quadrati era lo jugero, 10 5 2 46 80
nella cui divisione ricorre la 12 6 2 96 16
partizione dell’asse in oncie e loro
14 7 3 45 52
frazioni. Lo jugero era un bislungo
di 240 piedi sopra 120, cioè 16 8 3 94 88
28,800 piedi quadrati. 18 9 4 44 24
20 10 4 93 60
200 100 1 49 36
800 400 4 1 197 44
MISURE DI CAPACITÀ
LEGENDA - A: Ligula - B: Cyathus - C: Acetabulum - D: Quarantarius - E: Hemina - F: Sextarius
- G: Congius - H: Modius - I: Urna - L: Amphora - M: Culeus
A B C D E F G H I L M hl dal l dl cl
1 1 14
4 1 4 58
6 1½ 1 6 87
12 3 2 1 1 3 75
24 6 4 2 1 2 7 5
48 12 8 4 2 1 5 5
288 72 48 24 12 6 1 3 3
384 96 64 32 16 8 1⅓ ½ 4 4
768 192 128 64 32 16 2⅓ 1 3 8
1,152 288 192 96 48 24 4 1½ 1 13 2
2,304 578 384 192 96 48 8 3 2 1 26 3 9 9
46,080 11,520 7,680 3,840 1,920 960 610 60 40 10 2 64
20 1 5 28
30 7 92
L’unità di misura di capacità era l’anfora, che dapprima 40 2 10 56
chiamavasi quadrantal, come quella che conteneva un piede 50 13 20
cubo. Il suo peso, secondo Festo, era uguale a 80 libbre di 60 3 15 84
vino, il che monta a litri 26,3995, posto il peso specifico del 70 18 8
vino = 0,9915. 80 4 21 12
90 26 76
100 5 26 39 9 5