ScilabTEC 2015 - Scilab

21
Official Publisher and Professional Services Provider of Scilab, Open Source Software for Numerical Computation & Simulation ScilabTEC 2015 / Pierre-Aimé Agnel May 22nd, 2015

Transcript of ScilabTEC 2015 - Scilab

Page 1: ScilabTEC 2015 - Scilab

Official Publisher and Professional Services Provider of Scilab,

Open Source Software for Numerical Computation & Simulation

ScilabTEC 2015 / Pierre-Aimé AgnelMay 22nd, 2015

Page 2: ScilabTEC 2015 - Scilab

02/06/2015 2

SCILAB TECHNICAL PRESENTATION

Page 3: ScilabTEC 2015 - Scilab

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

Page 4: ScilabTEC 2015 - Scilab

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

Page 5: ScilabTEC 2015 - Scilab

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

Page 6: ScilabTEC 2015 - Scilab

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

Page 7: ScilabTEC 2015 - Scilab

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

Page 8: ScilabTEC 2015 - Scilab

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

Page 9: ScilabTEC 2015 - Scilab

Scilab 6 – Memory management

� Better memory management

– « Stacksize » no longer needed

– Memory is now dynamically allocated

Memory

Management

Data

Processing

Page 10: ScilabTEC 2015 - Scilab

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

Page 11: ScilabTEC 2015 - Scilab

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

Page 12: ScilabTEC 2015 - Scilab

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

Page 13: ScilabTEC 2015 - Scilab

Scilab 6 – Datatypes

� Added native support for cells (syntax, robustness,

speed)ASTLanguage

Interpreter

Page 14: ScilabTEC 2015 - Scilab

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

Page 15: ScilabTEC 2015 - Scilab

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

Page 16: ScilabTEC 2015 - Scilab

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

Page 17: ScilabTEC 2015 - Scilab

Scilab 6 – Other Features

� New graphical features

– Scatter plots

– Implicit plots

– Streamlines

2D 3D

Visualization

Page 18: ScilabTEC 2015 - Scilab

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)

Page 19: ScilabTEC 2015 - Scilab

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

Page 20: ScilabTEC 2015 - Scilab

Thank you for your attention,

your contributions and your involvement

with Scilab

Questions and Answers

Page 21: ScilabTEC 2015 - Scilab