scilabtec 2015 - scilab
TRANSCRIPT
Official Publisher and Professional Services Provider of Scilab,
Open Source Software for Numerical Computation & Simulation
ScilabTEC 2015 / Pierre-Aimé AgnelMay 22nd, 2015
02/06/2015 2
SCILAB TECHNICAL PRESENTATION
Scilab as a platformATOMS Private deployment server
ScilabScilab
User
Interface
Language
Interpreter
2D-3D
Visualization
Data
ProcessingXcos Scilab API
Specific
Functions
GUI Design
csv, xls, xml
binary, txt,
svg, png, pdf
SCI files for your
apps
SOD for
optimized data
storage
Unix Windows MacOS
C, C++, Java,
Fortran libraries
Scilab Extension Modules
Other apps
Data
interface
modules
Domain
specific
computation
Proprietary
apps, Labview,
Isight, Excel,
etc…
More than 200
modules
Database, VISA,
etc…
Other
languages Python, UML,
etc…
Scilab
apps
Scilab
batch
scripts
Scilab
apps
Scilab
batch
scripts
Scilab
Extension
modules
Latest Release: Scilab 5.5.2 (April 2015)
� A super stable version of Scilab!
� New graphics features such as
the improvement of the fec
function to enable the rendering
of meshes based on any convex
polygon type.
Works under 32 & 64-bit Windows
XP/Vista/7/8, 32 & 64-bit GNU/Linux and Mac
OS X
FMI support of Scilab/Xcos
� Xcos supports the Functional Mock-up Interface standard v1.0:
– Model- Exchange (Import & Export)
– Co-Simulation (Master & Slave)
� Solution to Intellectual Property and Interoperability issues:
5
Scilab Now – The 6.0 Family
� 5.5.0 Released in April 2014
– Major version release
� 5.5.1 Released in October 2014
– Minor version release
� 5.5.2 Released in April 2015
– Minor version release
� 6.0.0 Release
– Major version release
Faster release cycles
� To allow faster bug resolution after a release
� 6 month interval between major releases
� Minor releases will be issued on a fast cycle
– Major bug fixes
– Group of minor fixes
AST
JIT
Memory
Management
Scilab 6.0 Family
� Scilab 6.0.0 release
� Better memory management
– « Stacksize » no longer needed
– Memory is now dynamically allocated
Data
Processing
� Scilab language evolves
– Use of an Abstract Syntax Tree
– Removal of ambiguous syntax
– Better Matlab compatibility
– Recursive extraction
� New data types
– Native cells and structs
– Management of 64 bits integers
Language
Interpreter
� Just In Time Compiling
– Native cells and structs
– Management of 64 bits integers
Scilab 6 – Memory management
� Better memory management
– « Stacksize » no longer needed
– Memory is now dynamically allocated
Memory
Management
Data
Processing
Scilab 6 – Better syntax
� Use of a new parser with a grammar
– Abstract Syntax Tree (AST)
– Detect syntax error
– Parsing errors are easier to understand
– A sound basis for JIT compiling, Code
Generation, Static Analysis, etc.
ASTLanguage
Interpreter
Scilab 6 – Language Evolves
� C style comments
/* this is a comment */
� Recursive extraction
spec(3, 3)(1, :)
� Switch syntax
select/case/else and switch/case/otherwise
� Shortcut operators&& and ||
ASTLanguage
Interpreter
Scilab 6 – Language Evolves
� Variable names no longer limited to 24 characters
� Overloading functions no longer limited to 8
character for type
%myArbitraryLongType_p()
ASTLanguage
Interpreter
Scilab 6 – Datatypes
� Added native support for cells (syntax, robustness,
speed)ASTLanguage
Interpreter
Scilab 6 – Datatypes
� Added native support for struct
� All types are natively multi-dimensional
– Hypermatrices are now of their base type
– Faster and better management of hypermatrices
� Added int64, uint64 types
ASTLanguage
Interpreter
Scilab 6 – Just In Time compiling
� Scilab 6 will be released with Just In Time compiling
capabilities
– x100 – x150 speedup on loops
– Type and dimension inference
� Will be improved at each release to cover more coding
possibilities
� Based on LLVM (Apple, Google, etc.)
� Initiated with the French FUI funded project
RICHELIEU (Scilab Enterprises, Arcelor Mittal, CNES,
Dassault Aviation, INRIA, OCamlPro, Silkan, UPMC)
JITLanguage
Interpreter
Xcos in Scilab 6 – A better simulator
� The editor remains the same
� But the data model is greatly improved
– Data is unified in a shared entity
– Big Diagram management
� Which leads to better simulation performances
� Leverages improved Scilab 6 features
Xcos
Scilab 6 – Other Features
� New graphical features
– Scatter plots
– Implicit plots
– Streamlines
2D 3D
Visualization
Scilab 6 – Other points
� Your questions about backward compatibility
– "not valid' inconsistent syntax deprecated
– Only optimal SOD binary format supported
– stack-c.h is removed in favor of the Scilab API
– Otherwise, scripts will not vary from scilab 5.5 to scilab 6.0
– 99% of our existing scripts and code did not need change
� Performances
– Scilab 6 shows better performance than Scilab 5.5 in almost
every aspect (even without JIT)
And for the Future…
� The AST and JIT compiling make Scilab 6 very well
suited for distributed architectures:
– Selection of the functions at runtime
– Code generation made easy from an intermediate
representation and type inference
– Possibility to have variables memory managed « externally »
� More HPC and Big Data capabilities
� Faster release cycle
– New features for the Scilab 6 Family
Thank you for your attention,
your contributions and your involvement
with Scilab
Questions and Answers