SlideShare a Scribd company logo
Linux and Open Source in Math,
Science and Engineering

Dr. Doug Davis (3D)
pde1d.blogspot.com
Agenda

 A bit of history
 Where we are
 Visualization
 Math
 Engineering
 Science
Watt's steam engine at the lobby of the Higher
Technical School of Industrial Engineering of Madrid
Wikimedia Commons
A bit of History

 Computers originally for Computing
 Unix developed for telephone system
Human computers
in the NACA High
Speed Flight
Station "Computer
Room", Dryden
Flight Research
Center Facilities
WikiMedia Commons
1960s and 70s

 Mainframe era

 IBM, CDC, Cray, Burroughs Corporation, DEC,
NCR, General Electric, Honeywell, RCA, and
UNIVAC

 Fortran Programs
 Hollerith Cards

 Beginnings of interactive programing
Thomas J. Watson, Sr. was fired several times by John
Henry Patterson the owner of NCR in Dayton, Ohio. So
he went to work for Computing-Tabulating-Recording
Company (CTR) which became IBM under his
leadership
1980 and 90s
 Early PC and MAC
 2D AutoCAD
 Graphic Engineering Workstations
 3D graphics
 High price
 High performance
 Unix variants
2000s
This is a picture of the TinyHPC Beowulf cluster

 Beowulf cluster

 MPI – Message
Passing Interface
 PVM – Parallel
Virtual Machine
 COW – Cluster of
Workstations
 LOBOS – Lots Of
Boxes On Shelves

The name Beowulf originally
referred to a specific computer
built in 1994 by Thomas
Sterling and Donald Becker at
NASA.

Photo by Mukarram Ahmad

http://en.wikipedia.org/wiki/File:Tinyhpc.jpg
Instructions for building a Low cost Beowulf
(cir. 2000) http://www.clustercompute.com/
Today

 Top500.org

 91% of 500

Fastest
Computers in
the World use
Linux
 1.2% Use MS
Windows

 The Network is
the Computer

Sun's John Gage – CNET June 9,
2008
S&E Software Tools

 3 Classes of Tools
 Quick and Dirty

 Spreadsheets
 Mainly S&E eduction use
 Matlab, Octave, Scilab
 Python

 Programming Tools
 Fortran and C/C++
 Libraries
 Tools

 Science & Engineering Tools

 CAE – Computer Aided Engineering
Spreadsheet
One Dimensional Partial Differential Equation

 Calc

∂U
∂U
+ U
= 0
∂t
∂x

U (0) = [ 1 + sin( π x ) ] / 2
Burgers Equation

 OpenOffice
 LibreOffice

1st Order Euler
1.2

 Gnumeric

1
0
2
4
6
8
10
12

Amplitude

0.8
0.6
0.4
0.2
0
0

0.2

0.4

0.6

0.8

1
X

1.2

1.4

1.6

1.8

2
One Killer Feature of Linux
for S&E in My Opinion Anyway

 GPM - gpm provides mouse cut-and-paste
services

 Highlight, then mouse middle click, to paste
selected text
 Fast and simple way to transfer numbers
between programs
 Command line file names,

 ls → <command> → double click→ middle click

 With OO Calc can transfer whole text tables
 eMail and web addresses
 Works with vi, kwrite, gedit, OO writer, etc.
Plotting
“The purpose of computing is insight, not numbers.”
R.W.Hamming, Numerical Methods for Scientiust and Engineers, Dover Publications

 Gnuplot

 Fit function
 Plot data or functions
 Fast script running

 Paraview

 3D
 Filter Tree View

 Many Commercial Options
 Tecplot, Fieldview,
EnSight
gnuplot

 plot and splot main commands
 > help plot
 > help set

 set terminal and set output for plot file output
 text data in columns
 default white-space separators
 > set datafile separator ','
 quotes for file name in plot command
 no titles in file
 two blank lines separate index number

 user functions
 > sinc(x) = sin(pi*x)/(pi*x)
 multiple error bars
gnuplot
plot
Other Plotting Software

 Mainly 2D or Math functions
 Matlab - $$$
 matplotlib – free
 graph and plot - free

 3-D Contours

 Tecplot - $$$
 Ensight - $$$
 Fieldview - $$$
 Paraview – free
 Visit - free

 Many many more

http://vtk.org/Wiki/File:ParaViewWeb-shuttle.png
http://paraviewweb.kitware.com/PWShuttle/
Scientific Python

 PyLab

 numpy, numeric python
 Scipy, Scientific Python –
 Matplotlib, Python
Plotting
 Traits, Interactive

http://www.scipy.org/
Sage

 SAGE Math

 www.sagemath.org
 Author Video on Why Open Source
"I am a
cool
multiedge
graph with
loops"

http://www.sagemath.org/tour-graphics.html
Sagemath.org

 Python

>>> notebook()

@interact

environment
 PARI/GP
 Maxima
 scipy, matplolib
R
 singular

 Everything Open
Source Math

Better than MATLAB – Arbitrary Precision, Faster, Object Oriented
Programming, Symbolic Algebra, OPEN SOURCE
Maxima

 Symbolic Math
 Maxima is a

descendent of
Macsyma
 Mathmatica and
Maple are
cousins
 Written in lisp

 wxMaxima –

wxwidgets gui
version
Octave

 GNU Octave is a high-level interpreted

language, primarily intended for numerical
computations.
 Most compatible with Matlab
 Can run many .m files

 Octave Forge

 Examples and tools
 http://octave.sourceforge.net/

http://www.gnu.org/software/octave/index.html
Programing

 A Much Bigger Learning Curve
 May be needed for better understanding
 Efficiency – Faster computations
 Many Libraries
 Fortran or C/C++
Programing and Platform Tools

 Kdevelop IDE

 C, C++, Python, PHP, Ruby

 Eclipse

 CDT
 PTP
 Photran
Math Libraries
 Linear Algebra
 Fast Fourier Transform

 GSL – Gnu Scientific Library

 C functions, with many wrappers
 info gsl

Complex Numbers
Special Functions
Permutations
BLAS Support
Eigensystems
Quadrature
Quasi-Random Sequences
Discrete Wavelet Transforms
Simulated Annealing
Chebyshev Approximation
Discrete Hankel Transforms

Roots of Polynomials
Vectors and Matrices
Sorting
Linear Algebra
Fast Fourier Transforms
Random Numbers
Random Distributions
Histograms
Monte Carlo Integration
Differential Equations
Numerical Differentiation

Basis splines
IEEE Floating-Point
Physical Constants
Minimization
Least-Squares Fitting
Root-Finding
Interpolation
N-Tuples
Series Acceleration
Statistics
Other Math Libraries

 AMD Core Math Library (ACML)

 Fortran
 Supports 6 compilers on Linux and 2 on
Windows

 AMD Accelerated Parallel Processing Math
Libraries (APPML)

 AMD

OpenCL GPUs

 Intel® Math Kernel Library (Intel® MKL)
 Fortran and C
High Performance Libraries

 PETSC – PDE library
 Dakota - Optimization
 Trilinos - object-oriented software framework
 Paraview – 3-D Visualization Tool
 VTK – 3-D Visualization Library
 HDF5 – Hierarchical Data Facility
 NetCDF – Network Common Data Form
Other Languages

R

 Statistics Language Package
 This means data analysis
 Good plotting facilities
 Powerful Non-Linear Regression

 Java

 JScience – http://jscience.org/
 Java Scientific Library

-http://www.ee.ucl.ac.uk/~mflanaga/java/
Engineering Tools

 Linux weakness is lack of popular CAD

 Most geometry engines work under Linux
 ACIS, Granite, OpenCascade

 Some Linux Cad Packages

 QCAD – 2D – Free , GPL
 VariCAD - ~$700 – free trial - varicad.com
 BricsCAD - $$ - http://www.bricsys.com
 Graphite One CAD - ~$2000 for 3-D
 freeCAD – sourceforge.net/projects/free-cad/
 Some Light 3D for Grid Generators
 CUBIT, Salomè
CAELinux

http://www.caelinux.com

Linux Distribution Focused on Computer Aided Engineering
CAELinux is an installable LiveDVD Linux distribution based on Ubuntu 10.04 LTS 64 bit
Pre-post processors & CAD: Salome_Meca 2010, Salome 5.1.3, GMSH 2.4, Netgen ,
Tetgen, enGrid, Discretizer / Discretizer::Setup, Paraview, OpenDX, CGX, QCad,
FreeCAD, SagCAD, ElmerGUI / ElmeFront / ElmerGrid
Finite Element solvers: Salome_Meca 2010, Code_Aster STA10.1, Elmer v5.5 , Calculix
2.1, Impact 0.76, Dynela, Fenics
Computationnal Fluid Dynamics: OpenFOAM v1.7, Gerris flow solver and GFSView,
Code-Saturne 2.0 with CFD analysis wizard and tutorial , Elmer Solver, air foil and airplane
analysis tools (Xfoil, Javafoil, AVL, Datcom+)
Multibody dynamics : MBDyn with its Blender interface and EasyAnim
3D bio-medical image processing: ITK-Snap, Image J, Voxel_Mesher
Mathematics: GNU Octave +QtOctave, Scilab, wxMaxima, R & Rkward, Gnuplot, Latex,
Labplot, g3data, Scipy.
Is provided with interactive flash tutorials, videos as well as examples to start learning how
to use the included open-source softwares for realistic simulation
Text Book
Using CAE
Linux

CAE Linux also
includes good tutorials Wink
Salome -MECA
http://www.salome-platform.org/

 Integrated Analysis Framework
 Geometry → Grid → Solver → Visualization
 User Modules

 Geometry: create, edit, import/export CAD models
(OpenCascade)
 Mesh : mesh a CAD model using a standard meshing algorithm
or any external mesher
 Med : MED data files management
 Post-processor : dedicated viewer (Paraview/ VTK)
 YACS : supervision module

 Python Scripting
Salome- Mesh Example
YACCS

 Supervisor Module
 Integrates Solvers
 Optimization??
OpenFOAM
http://www.openfoam.com/

 Arbitrary Polyhedral Cell Field Solver
 Separate Solvers for Different Problems
 Really a framework

 OpenCFD Ltd. acquired by SGI
An extensive set of OpenFOAM solvers has evolved
(and is forever growing) that are available to users.
OpenFOAM is used mainly for CFD but has found use
in other areas such as stress analysis,
electromagnetics and finance because it is
fundamentally a tool for solving partial differential
equations rather than a CFD package in the traditional
sense.
Catalogs of Programs

 SAL – Scientific Applications for Linux

 http://www.sai.msu.su/sal/sal2.shtml
 Search-able reference to many programs
 Very Old – Last update May 2001

 Netlib - Netlib is a collection of mathematical
software, papers, and databases

 http://www.netlib.org/
 160+ packages and catagories
Other

 Latest Linux Kernel adding
more Real Time functions

 Process Control
Requirement

 Mathscript for Android
(SymPy)
 TeX Live -

 Kile, Texmaker and Lyx

 KDE Cantor
 GNU TexMacs

https://market.android.com/details?
id=com.funmath.mathscript
Thank You

 pde1d.blogspot.com

More Related Content

What's hot

On the Capability and Achievable Performance of FPGAs for HPC Applications
On the Capability and Achievable Performance of FPGAs for HPC ApplicationsOn the Capability and Achievable Performance of FPGAs for HPC Applications
On the Capability and Achievable Performance of FPGAs for HPC Applications
Wim Vanderbauwhede
 
EuroMPI 2016 Keynote: How Can MPI Fit Into Today's Big Computing
EuroMPI 2016 Keynote: How Can MPI Fit Into Today's Big ComputingEuroMPI 2016 Keynote: How Can MPI Fit Into Today's Big Computing
EuroMPI 2016 Keynote: How Can MPI Fit Into Today's Big Computing
Jonathan Dursi
 
Cluster Schedulers
Cluster SchedulersCluster Schedulers
Cluster Schedulers
Pietro Michiardi
 
Mapreduce Algorithms
Mapreduce AlgorithmsMapreduce Algorithms
Mapreduce Algorithms
Amund Tveit
 
AI is Impacting HPC Everywhere
AI is Impacting HPC EverywhereAI is Impacting HPC Everywhere
AI is Impacting HPC Everywhere
inside-BigData.com
 
Intro to Machine Learning for GPUs
Intro to Machine Learning for GPUsIntro to Machine Learning for GPUs
Intro to Machine Learning for GPUs
Sri Ambati
 
Use C++ and Intel® Threading Building Blocks (Intel® TBB) for Hardware Progra...
Use C++ and Intel® Threading Building Blocks (Intel® TBB) for Hardware Progra...Use C++ and Intel® Threading Building Blocks (Intel® TBB) for Hardware Progra...
Use C++ and Intel® Threading Building Blocks (Intel® TBB) for Hardware Progra...
Intel® Software
 
Behm Shah Pagerank
Behm Shah PagerankBehm Shah Pagerank
Behm Shah Pagerankgothicane
 
Data analysis in R
Data analysis in RData analysis in R
Data analysis in R
Andrew Lowe
 
Numba
NumbaNumba
IS-ENES COMP Superscalar tutorial
IS-ENES COMP Superscalar tutorialIS-ENES COMP Superscalar tutorial
IS-ENES COMP Superscalar tutorial
Roger Rafanell Mas
 
High Performance Python - Marc Garcia
High Performance Python - Marc GarciaHigh Performance Python - Marc Garcia
High Performance Python - Marc Garcia
Marc Garcia
 
A CGRA-based Approach for Accelerating Convolutional Neural Networks
A CGRA-based Approachfor Accelerating Convolutional Neural NetworksA CGRA-based Approachfor Accelerating Convolutional Neural Networks
A CGRA-based Approach for Accelerating Convolutional Neural Networks
Shinya Takamaeda-Y
 
PG-4034, Using OpenGL and DirectX for Heterogeneous Compute, by Karl Hillesland
PG-4034, Using OpenGL and DirectX for Heterogeneous Compute, by Karl HilleslandPG-4034, Using OpenGL and DirectX for Heterogeneous Compute, by Karl Hillesland
PG-4034, Using OpenGL and DirectX for Heterogeneous Compute, by Karl Hillesland
AMD Developer Central
 
Open cl programming using python syntax
Open cl programming using python syntaxOpen cl programming using python syntax
Open cl programming using python syntax
csandit
 
Large Model support and Distribute deep learning
Large Model support and Distribute deep learningLarge Model support and Distribute deep learning
Large Model support and Distribute deep learning
Ganesan Narayanasamy
 
Co-occurrence Based Recommendations with Mahout, Scala and Spark
Co-occurrence Based Recommendations with Mahout, Scala and SparkCo-occurrence Based Recommendations with Mahout, Scala and Spark
Co-occurrence Based Recommendations with Mahout, Scala and Sparksscdotopen
 
Parallel computation
Parallel computationParallel computation
Parallel computation
Jayanti Prasad Ph.D.
 
Manycores for the Masses
Manycores for the MassesManycores for the Masses
Manycores for the Masses
Intel® Software
 

What's hot (20)

On the Capability and Achievable Performance of FPGAs for HPC Applications
On the Capability and Achievable Performance of FPGAs for HPC ApplicationsOn the Capability and Achievable Performance of FPGAs for HPC Applications
On the Capability and Achievable Performance of FPGAs for HPC Applications
 
EuroMPI 2016 Keynote: How Can MPI Fit Into Today's Big Computing
EuroMPI 2016 Keynote: How Can MPI Fit Into Today's Big ComputingEuroMPI 2016 Keynote: How Can MPI Fit Into Today's Big Computing
EuroMPI 2016 Keynote: How Can MPI Fit Into Today's Big Computing
 
Cluster Schedulers
Cluster SchedulersCluster Schedulers
Cluster Schedulers
 
Arvindsujeeth scaladays12
Arvindsujeeth scaladays12Arvindsujeeth scaladays12
Arvindsujeeth scaladays12
 
Mapreduce Algorithms
Mapreduce AlgorithmsMapreduce Algorithms
Mapreduce Algorithms
 
AI is Impacting HPC Everywhere
AI is Impacting HPC EverywhereAI is Impacting HPC Everywhere
AI is Impacting HPC Everywhere
 
Intro to Machine Learning for GPUs
Intro to Machine Learning for GPUsIntro to Machine Learning for GPUs
Intro to Machine Learning for GPUs
 
Use C++ and Intel® Threading Building Blocks (Intel® TBB) for Hardware Progra...
Use C++ and Intel® Threading Building Blocks (Intel® TBB) for Hardware Progra...Use C++ and Intel® Threading Building Blocks (Intel® TBB) for Hardware Progra...
Use C++ and Intel® Threading Building Blocks (Intel® TBB) for Hardware Progra...
 
Behm Shah Pagerank
Behm Shah PagerankBehm Shah Pagerank
Behm Shah Pagerank
 
Data analysis in R
Data analysis in RData analysis in R
Data analysis in R
 
Numba
NumbaNumba
Numba
 
IS-ENES COMP Superscalar tutorial
IS-ENES COMP Superscalar tutorialIS-ENES COMP Superscalar tutorial
IS-ENES COMP Superscalar tutorial
 
High Performance Python - Marc Garcia
High Performance Python - Marc GarciaHigh Performance Python - Marc Garcia
High Performance Python - Marc Garcia
 
A CGRA-based Approach for Accelerating Convolutional Neural Networks
A CGRA-based Approachfor Accelerating Convolutional Neural NetworksA CGRA-based Approachfor Accelerating Convolutional Neural Networks
A CGRA-based Approach for Accelerating Convolutional Neural Networks
 
PG-4034, Using OpenGL and DirectX for Heterogeneous Compute, by Karl Hillesland
PG-4034, Using OpenGL and DirectX for Heterogeneous Compute, by Karl HilleslandPG-4034, Using OpenGL and DirectX for Heterogeneous Compute, by Karl Hillesland
PG-4034, Using OpenGL and DirectX for Heterogeneous Compute, by Karl Hillesland
 
Open cl programming using python syntax
Open cl programming using python syntaxOpen cl programming using python syntax
Open cl programming using python syntax
 
Large Model support and Distribute deep learning
Large Model support and Distribute deep learningLarge Model support and Distribute deep learning
Large Model support and Distribute deep learning
 
Co-occurrence Based Recommendations with Mahout, Scala and Spark
Co-occurrence Based Recommendations with Mahout, Scala and SparkCo-occurrence Based Recommendations with Mahout, Scala and Spark
Co-occurrence Based Recommendations with Mahout, Scala and Spark
 
Parallel computation
Parallel computationParallel computation
Parallel computation
 
Manycores for the Masses
Manycores for the MassesManycores for the Masses
Manycores for the Masses
 

Similar to Linux and Open Source in Math, Science and Engineering

pythonOCC PDE2009 presentation
pythonOCC PDE2009 presentationpythonOCC PDE2009 presentation
pythonOCC PDE2009 presentation
Thomas Paviot
 
Accelerating open science and AI with automated, portable, customizable and r...
Accelerating open science and AI with automated, portable, customizable and r...Accelerating open science and AI with automated, portable, customizable and r...
Accelerating open science and AI with automated, portable, customizable and r...
Grigori Fursin
 
The world is the computer and the programmer is you
The world is the computer and the programmer is youThe world is the computer and the programmer is you
The world is the computer and the programmer is youDavide Carboni
 
PyData Boston 2013
PyData Boston 2013PyData Boston 2013
PyData Boston 2013
Travis Oliphant
 
Cluster Tutorial
Cluster TutorialCluster Tutorial
Cluster Tutorialcybercbm
 
Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux
Trayan Iliev
 
Eclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science ProjectEclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science Project
Matthew Gerring
 
The Future of Computing is Distributed
The Future of Computing is DistributedThe Future of Computing is Distributed
The Future of Computing is Distributed
Alluxio, Inc.
 
Matlab lecture
Matlab lectureMatlab lecture
Matlab lecture
Yatendra Vashishtha
 
Node-RED and Minecraft - CamJam September 2015
Node-RED and Minecraft - CamJam September 2015Node-RED and Minecraft - CamJam September 2015
Node-RED and Minecraft - CamJam September 2015
Boris Adryan
 
Role of python in hpc
Role of python in hpcRole of python in hpc
Role of python in hpc
Dr Reeja S R
 
Elastic r sc10-tutorial
Elastic r sc10-tutorialElastic r sc10-tutorial
Elastic r sc10-tutorialArden Chan
 
Software used in Electronics and Communication
Software used in Electronics and CommunicationSoftware used in Electronics and Communication
Software used in Electronics and Communication
ashishsoni1505
 
Portfolio of Projects
Portfolio of ProjectsPortfolio of Projects
Portfolio of Projects
Daniele Pinto
 
Natural Language Processing with CNTK and Apache Spark with Ali Zaidi
Natural Language Processing with CNTK and Apache Spark with Ali ZaidiNatural Language Processing with CNTK and Apache Spark with Ali Zaidi
Natural Language Processing with CNTK and Apache Spark with Ali Zaidi
Databricks
 
Scientific Computing @ Fred Hutch
Scientific Computing @ Fred HutchScientific Computing @ Fred Hutch
Scientific Computing @ Fred Hutch
Dirk Petersen
 
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...
Rafael Ferreira da Silva
 
jeevanreddy-nwplm
jeevanreddy-nwplmjeevanreddy-nwplm
jeevanreddy-nwplmjeevan b
 
A performance analysis of OpenStack Cloud vs Real System on Hadoop Clusters
A performance analysis of OpenStack Cloud vs Real System on Hadoop ClustersA performance analysis of OpenStack Cloud vs Real System on Hadoop Clusters
A performance analysis of OpenStack Cloud vs Real System on Hadoop Clusters
Kumari Surabhi
 

Similar to Linux and Open Source in Math, Science and Engineering (20)

pythonOCC PDE2009 presentation
pythonOCC PDE2009 presentationpythonOCC PDE2009 presentation
pythonOCC PDE2009 presentation
 
Accelerating open science and AI with automated, portable, customizable and r...
Accelerating open science and AI with automated, portable, customizable and r...Accelerating open science and AI with automated, portable, customizable and r...
Accelerating open science and AI with automated, portable, customizable and r...
 
The world is the computer and the programmer is you
The world is the computer and the programmer is youThe world is the computer and the programmer is you
The world is the computer and the programmer is you
 
PyData Boston 2013
PyData Boston 2013PyData Boston 2013
PyData Boston 2013
 
Cluster Tutorial
Cluster TutorialCluster Tutorial
Cluster Tutorial
 
Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux
 
Eclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science ProjectEclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science Project
 
The Future of Computing is Distributed
The Future of Computing is DistributedThe Future of Computing is Distributed
The Future of Computing is Distributed
 
Matlab lecture
Matlab lectureMatlab lecture
Matlab lecture
 
Node-RED and Minecraft - CamJam September 2015
Node-RED and Minecraft - CamJam September 2015Node-RED and Minecraft - CamJam September 2015
Node-RED and Minecraft - CamJam September 2015
 
Role of python in hpc
Role of python in hpcRole of python in hpc
Role of python in hpc
 
Elastic r sc10-tutorial
Elastic r sc10-tutorialElastic r sc10-tutorial
Elastic r sc10-tutorial
 
Software used in Electronics and Communication
Software used in Electronics and CommunicationSoftware used in Electronics and Communication
Software used in Electronics and Communication
 
Portfolio of Projects
Portfolio of ProjectsPortfolio of Projects
Portfolio of Projects
 
Natural Language Processing with CNTK and Apache Spark with Ali Zaidi
Natural Language Processing with CNTK and Apache Spark with Ali ZaidiNatural Language Processing with CNTK and Apache Spark with Ali Zaidi
Natural Language Processing with CNTK and Apache Spark with Ali Zaidi
 
Scientific Computing @ Fred Hutch
Scientific Computing @ Fred HutchScientific Computing @ Fred Hutch
Scientific Computing @ Fred Hutch
 
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...
 
Embedded system
Embedded systemEmbedded system
Embedded system
 
jeevanreddy-nwplm
jeevanreddy-nwplmjeevanreddy-nwplm
jeevanreddy-nwplm
 
A performance analysis of OpenStack Cloud vs Real System on Hadoop Clusters
A performance analysis of OpenStack Cloud vs Real System on Hadoop ClustersA performance analysis of OpenStack Cloud vs Real System on Hadoop Clusters
A performance analysis of OpenStack Cloud vs Real System on Hadoop Clusters
 

Recently uploaded

Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
UiPathCommunity
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 

Recently uploaded (20)

Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 

Linux and Open Source in Math, Science and Engineering

  • 1. Linux and Open Source in Math, Science and Engineering Dr. Doug Davis (3D) pde1d.blogspot.com
  • 2. Agenda  A bit of history  Where we are  Visualization  Math  Engineering  Science Watt's steam engine at the lobby of the Higher Technical School of Industrial Engineering of Madrid Wikimedia Commons
  • 3. A bit of History  Computers originally for Computing  Unix developed for telephone system Human computers in the NACA High Speed Flight Station "Computer Room", Dryden Flight Research Center Facilities WikiMedia Commons
  • 4. 1960s and 70s  Mainframe era  IBM, CDC, Cray, Burroughs Corporation, DEC, NCR, General Electric, Honeywell, RCA, and UNIVAC  Fortran Programs  Hollerith Cards  Beginnings of interactive programing Thomas J. Watson, Sr. was fired several times by John Henry Patterson the owner of NCR in Dayton, Ohio. So he went to work for Computing-Tabulating-Recording Company (CTR) which became IBM under his leadership
  • 5. 1980 and 90s  Early PC and MAC  2D AutoCAD  Graphic Engineering Workstations  3D graphics  High price  High performance  Unix variants
  • 6. 2000s This is a picture of the TinyHPC Beowulf cluster  Beowulf cluster  MPI – Message Passing Interface  PVM – Parallel Virtual Machine  COW – Cluster of Workstations  LOBOS – Lots Of Boxes On Shelves The name Beowulf originally referred to a specific computer built in 1994 by Thomas Sterling and Donald Becker at NASA. Photo by Mukarram Ahmad http://en.wikipedia.org/wiki/File:Tinyhpc.jpg Instructions for building a Low cost Beowulf (cir. 2000) http://www.clustercompute.com/
  • 7. Today  Top500.org  91% of 500 Fastest Computers in the World use Linux  1.2% Use MS Windows  The Network is the Computer Sun's John Gage – CNET June 9, 2008
  • 8. S&E Software Tools  3 Classes of Tools  Quick and Dirty  Spreadsheets  Mainly S&E eduction use  Matlab, Octave, Scilab  Python  Programming Tools  Fortran and C/C++  Libraries  Tools  Science & Engineering Tools  CAE – Computer Aided Engineering
  • 9. Spreadsheet One Dimensional Partial Differential Equation  Calc ∂U ∂U + U = 0 ∂t ∂x U (0) = [ 1 + sin( π x ) ] / 2 Burgers Equation  OpenOffice  LibreOffice 1st Order Euler 1.2  Gnumeric 1 0 2 4 6 8 10 12 Amplitude 0.8 0.6 0.4 0.2 0 0 0.2 0.4 0.6 0.8 1 X 1.2 1.4 1.6 1.8 2
  • 10. One Killer Feature of Linux for S&E in My Opinion Anyway  GPM - gpm provides mouse cut-and-paste services  Highlight, then mouse middle click, to paste selected text  Fast and simple way to transfer numbers between programs  Command line file names,  ls → <command> → double click→ middle click  With OO Calc can transfer whole text tables  eMail and web addresses  Works with vi, kwrite, gedit, OO writer, etc.
  • 11. Plotting “The purpose of computing is insight, not numbers.” R.W.Hamming, Numerical Methods for Scientiust and Engineers, Dover Publications  Gnuplot  Fit function  Plot data or functions  Fast script running  Paraview  3D  Filter Tree View  Many Commercial Options  Tecplot, Fieldview, EnSight
  • 12. gnuplot  plot and splot main commands  > help plot  > help set  set terminal and set output for plot file output  text data in columns  default white-space separators  > set datafile separator ','  quotes for file name in plot command  no titles in file  two blank lines separate index number  user functions  > sinc(x) = sin(pi*x)/(pi*x)  multiple error bars
  • 14. Other Plotting Software  Mainly 2D or Math functions  Matlab - $$$  matplotlib – free  graph and plot - free  3-D Contours  Tecplot - $$$  Ensight - $$$  Fieldview - $$$  Paraview – free  Visit - free  Many many more http://vtk.org/Wiki/File:ParaViewWeb-shuttle.png http://paraviewweb.kitware.com/PWShuttle/
  • 15. Scientific Python  PyLab  numpy, numeric python  Scipy, Scientific Python –  Matplotlib, Python Plotting  Traits, Interactive http://www.scipy.org/
  • 16. Sage  SAGE Math  www.sagemath.org  Author Video on Why Open Source "I am a cool multiedge graph with loops" http://www.sagemath.org/tour-graphics.html
  • 17. Sagemath.org  Python >>> notebook() @interact environment  PARI/GP  Maxima  scipy, matplolib R  singular  Everything Open Source Math Better than MATLAB – Arbitrary Precision, Faster, Object Oriented Programming, Symbolic Algebra, OPEN SOURCE
  • 18. Maxima  Symbolic Math  Maxima is a descendent of Macsyma  Mathmatica and Maple are cousins  Written in lisp  wxMaxima – wxwidgets gui version
  • 19. Octave  GNU Octave is a high-level interpreted language, primarily intended for numerical computations.  Most compatible with Matlab  Can run many .m files  Octave Forge  Examples and tools  http://octave.sourceforge.net/ http://www.gnu.org/software/octave/index.html
  • 20. Programing  A Much Bigger Learning Curve  May be needed for better understanding  Efficiency – Faster computations  Many Libraries  Fortran or C/C++
  • 21. Programing and Platform Tools  Kdevelop IDE  C, C++, Python, PHP, Ruby  Eclipse  CDT  PTP  Photran
  • 22. Math Libraries  Linear Algebra  Fast Fourier Transform  GSL – Gnu Scientific Library  C functions, with many wrappers  info gsl Complex Numbers Special Functions Permutations BLAS Support Eigensystems Quadrature Quasi-Random Sequences Discrete Wavelet Transforms Simulated Annealing Chebyshev Approximation Discrete Hankel Transforms Roots of Polynomials Vectors and Matrices Sorting Linear Algebra Fast Fourier Transforms Random Numbers Random Distributions Histograms Monte Carlo Integration Differential Equations Numerical Differentiation Basis splines IEEE Floating-Point Physical Constants Minimization Least-Squares Fitting Root-Finding Interpolation N-Tuples Series Acceleration Statistics
  • 23. Other Math Libraries  AMD Core Math Library (ACML)  Fortran  Supports 6 compilers on Linux and 2 on Windows  AMD Accelerated Parallel Processing Math Libraries (APPML)  AMD OpenCL GPUs  Intel® Math Kernel Library (Intel® MKL)  Fortran and C
  • 24. High Performance Libraries  PETSC – PDE library  Dakota - Optimization  Trilinos - object-oriented software framework  Paraview – 3-D Visualization Tool  VTK – 3-D Visualization Library  HDF5 – Hierarchical Data Facility  NetCDF – Network Common Data Form
  • 25. Other Languages R  Statistics Language Package  This means data analysis  Good plotting facilities  Powerful Non-Linear Regression  Java  JScience – http://jscience.org/  Java Scientific Library -http://www.ee.ucl.ac.uk/~mflanaga/java/
  • 26. Engineering Tools  Linux weakness is lack of popular CAD  Most geometry engines work under Linux  ACIS, Granite, OpenCascade  Some Linux Cad Packages  QCAD – 2D – Free , GPL  VariCAD - ~$700 – free trial - varicad.com  BricsCAD - $$ - http://www.bricsys.com  Graphite One CAD - ~$2000 for 3-D  freeCAD – sourceforge.net/projects/free-cad/  Some Light 3D for Grid Generators  CUBIT, Salomè
  • 27. CAELinux http://www.caelinux.com Linux Distribution Focused on Computer Aided Engineering CAELinux is an installable LiveDVD Linux distribution based on Ubuntu 10.04 LTS 64 bit Pre-post processors & CAD: Salome_Meca 2010, Salome 5.1.3, GMSH 2.4, Netgen , Tetgen, enGrid, Discretizer / Discretizer::Setup, Paraview, OpenDX, CGX, QCad, FreeCAD, SagCAD, ElmerGUI / ElmeFront / ElmerGrid Finite Element solvers: Salome_Meca 2010, Code_Aster STA10.1, Elmer v5.5 , Calculix 2.1, Impact 0.76, Dynela, Fenics Computationnal Fluid Dynamics: OpenFOAM v1.7, Gerris flow solver and GFSView, Code-Saturne 2.0 with CFD analysis wizard and tutorial , Elmer Solver, air foil and airplane analysis tools (Xfoil, Javafoil, AVL, Datcom+) Multibody dynamics : MBDyn with its Blender interface and EasyAnim 3D bio-medical image processing: ITK-Snap, Image J, Voxel_Mesher Mathematics: GNU Octave +QtOctave, Scilab, wxMaxima, R & Rkward, Gnuplot, Latex, Labplot, g3data, Scipy. Is provided with interactive flash tutorials, videos as well as examples to start learning how to use the included open-source softwares for realistic simulation
  • 28. Text Book Using CAE Linux CAE Linux also includes good tutorials Wink
  • 29. Salome -MECA http://www.salome-platform.org/  Integrated Analysis Framework  Geometry → Grid → Solver → Visualization  User Modules  Geometry: create, edit, import/export CAD models (OpenCascade)  Mesh : mesh a CAD model using a standard meshing algorithm or any external mesher  Med : MED data files management  Post-processor : dedicated viewer (Paraview/ VTK)  YACS : supervision module  Python Scripting
  • 31. YACCS  Supervisor Module  Integrates Solvers  Optimization??
  • 32. OpenFOAM http://www.openfoam.com/  Arbitrary Polyhedral Cell Field Solver  Separate Solvers for Different Problems  Really a framework  OpenCFD Ltd. acquired by SGI An extensive set of OpenFOAM solvers has evolved (and is forever growing) that are available to users. OpenFOAM is used mainly for CFD but has found use in other areas such as stress analysis, electromagnetics and finance because it is fundamentally a tool for solving partial differential equations rather than a CFD package in the traditional sense.
  • 33. Catalogs of Programs  SAL – Scientific Applications for Linux  http://www.sai.msu.su/sal/sal2.shtml  Search-able reference to many programs  Very Old – Last update May 2001  Netlib - Netlib is a collection of mathematical software, papers, and databases  http://www.netlib.org/  160+ packages and catagories
  • 34. Other  Latest Linux Kernel adding more Real Time functions  Process Control Requirement  Mathscript for Android (SymPy)  TeX Live -  Kile, Texmaker and Lyx  KDE Cantor  GNU TexMacs https://market.android.com/details? id=com.funmath.mathscript