SlideShare a Scribd company logo
1 of 34
Download to read offline
Sat4j: from the lab to desktop computers
Daniel Le Berre
Joint work with Emmanuel Lonca, Anne Parrain, Pascal Rapicault,
St´ephanie Roussel
CNRS - Universit´e d’Artois
OW2con’15, Issy-Les-Moulineaux, November 17, 2015
1/29
Outline
What is the SATisfiability problem ? (the lab)
What is the software dependency problem ? (your desktop)
Sat4j @ OW2
The SAT problem : textbook definition
Definition
Input : A set of clauses C built from a propositional language with
n variables.
Output : Is there an assignment of the n variables that satisfies all
those clauses ?
3/29
The SAT problem : textbook definition
Definition
Input : A set of clauses C built from a propositional language with
n variables.
Output : Is there an assignment of the n variables that satisfies all
those clauses ?
Example
C1 = {¬a ∨ b, ¬b ∨ c} = (¬a ∨ b) ∧ (¬b ∨ c) = (a + b).(b + c)
C2 = C1 ∪ {a, ¬c} = C1 ∧ a ∧ ¬c
For C1, the answer is yes, for C2 the answer is no
C1 |= ¬(a ∧ ¬c) = ¬a ∨ c
3/29
40 years ago ...
Canonical NP-Complete problem (Cook, 1971)
SAT is in theory intractable ...
4/29
40 years ago ...
Canonical NP-Complete problem (Cook, 1971)
SAT is in theory intractable ...
... in the worst case !
4/29
20 years ago ...
Threshold phenomenon on randomly generated k-SAT
instances (Mitchell,Selman,Levesque, 1992)
Local search for solving large satisfiable SAT benchmarks
DPLL (exhaustive binary search) for solving unsatisfiable
benchmarks
Application-oriented complete SAT solvers (SATO, RelSAT,
GRASP)
Extensions to Boolean optimization exists (e.g. opbdp, Bsolo
...)
15 years ago : the killing app, Bounded Model Checking
TACAS 2014 most influential paper
in the first 20 years
awarded to
A. Biere
A. Cimatti
E. Clarke
Y. Zhu
for
Symbolic Model Checking without
BDDs
6/29
15 years ago, the killing solver, Chaff
Computer Aided Verification Award
2009
awarded to
Conor F. Madigan
Sharad Malik
Joao Marques-Silva
Matthew Moskewicz
Karem Sakallah
Lintao Zhang
Ying Zhao
for
fundamental contributions to the
development of high-performance
Boolean satisfiability solvers.
Authors of GRASP SAT solver
Authors of CHAFF SAT solver
7/29
15 years ago
Killing app : Bounded Model Checking
Killing solver : Chaff, based on Grasp architecture
Works well on many application benchmarks !
Does not work on randomly generated benchmarks !
Start of the Conflict Driven Clause Learning domination ...
Extension to optimization problems (PBO) : Satire, Satzoo,
PBS, PBChaff, Galena ...
8/29
10 years ago, new killing solver Minisat
Fast, widely used, easy to extend implementation of a CDCL
solver (Community Award during SAT Competition 2014).
SAT solver is incremental (Minisat)
Pre-processors are important (SatELite)
Boolean optimization takes off (PB competition in 2005,
MAXSAT evaluation in 2006)
Interest on CNF encodings for cardinality constraints and PB
constraints starts (Minisat+).
Sat4j started as an implementation in Java of the Minisat
specification in 2004
9/29
Now
SAT solver returns a verifiable proof in case of unsatisfiability
(since SAT Competition 2013)
Wide variety of freely available SAT solvers for research
purposes
Much limited amount of Boolean optimizers
Growing interest for MAXSAT
Limited interest for Pseudo-Boolean Optimization
All this available in Sat4j
10/29
Your life as a developer has been impacted by SAT
Most companies doing software or hardware verification are
now using SAT solvers.
Intel core I7 processor designed with the help of SAT solvers
[Kaivola et al, CAV 2009]
Windows 7 device drivers verified using SAT related
technology (Z3, SMT solver) [De Moura and Bjorner, IJCAR
2010]
The Eclipse open platform uses SAT technology for solving
dependencies between components [Le Berre and Rapicault,
IWOCE 2009]
Outline
What is the SATisfiability problem ? (the lab)
What is the software dependency problem ? (your desktop)
Sat4j @ OW2
Question to the audience
What makes your favorite Linux package repository or Eclipse
marketplace different from your favorite smartphone “app store” ?
13/29
Question to the audience
What makes your favorite Linux package repository or Eclipse
marketplace different from your favorite smartphone “app store” ?
The former manage their component dependencies, not the latter !
13/29
An example of Ubuntu metadata
Package : f i r e f o x −3.0
P r i o r i t y : o p t i o n a l
Section : web
I n s t a l l e d −Size : 3456
Maintainer : Alexander Sack <asac@ubuntu . com>
A r c h i t e c t u r e : i386
Version : 3.0.16+ nobinonly −0ubuntu0 . 9 . 0 4 . 1
Replaces : f i r e f o x (<< 3) , f i r e f o x −granparadiso , f i r e f o x −l i b t h a i , f i r e f o x −trunk
Provides : f i r e f o x −l i b t h a i , www−browser
Depends : f o n t c o n f i g , psmisc , d e b i a n u t i l s (>= 1.16) , xulrunner −1.9 (>= 1 . 9 . 0 . 1 ) ,
l i b a t k 1 .0−0 (>= 1 . 2 0 . 0 ) , l i b c 6 (>= 2 . 4 ) , l i b c a i r o 2 (>= 1 . 2 . 4 ) ,
l i b f o n t c o n f i g 1 (>= 2 . 4 . 0 ) , l i b f r e e t y p e 6 (>= 2 . 2 . 1 ) , l i b g c c 1 (>= 1 : 4 . 1 . 1 ) ,
l i b g l i b 2 .0−0 (>= 2 . 1 6 . 0 ) , l i b g t k 2 .0−0 (>= 2 . 1 6 . 0 ) ,
l i b n s p r 4 −0d (>= 4.7.3 −0 ubuntu1 ˜) , libpango1 .0−0 (>= 1 . 1 4 . 0 ) ,
l i b s t d c++6 (>= 4 . 1 . 1 ) ,
f i r e f o x −3.0− branding (>= 3.0.3+ nobinonly −0ubuntu1 ˜) |
abrowser −3.0− branding (>= 3.0.3+ nobinonly −0ubuntu1 ˜)
Suggests : ubufox ,
f i r e f o x −3.0−gnome−support (= 3.0.16+ nobinonly −0ubuntu0 . 9 . 0 4 . 1 ) ,
latex −xft −fonts , l i b t h a i 0
C o n f l i c t s : f i r e f o x (<< 3) , f i r e f o x −g ra npa r ad is o (<< 3.0˜ alpha8 −0) ,
f i r e f o x −l i b t h a i , f i r e f o x −trunk (<< 3.0˜ a8˜ cvs20070914t1713 −0)
Size : 887822
D e s c r i p t i o n : s a f e and easy web browser from M o z i l l a
F i r e f o x d e l i v e r s safe , easy web browsing . A f a m i l i a r user i n t e r f a c e ,
enhanced s e c u r i t y f e a t u r e s i n c l u d i n g p r o t e c t i o n from o n l i n e i d e n t i t y theft ,
and i n t e g r a t e d search l e t you get the most out of the web .
.
I n s t a l l t h i s f i r e f o x package too , i f you want to be a u t o m a t i c a l l y upgraded to
new major f i r e f o x v e r s i o n s i n the f u t u r e .
14/29
Dependency Management Problem : formal definition
P a set of packages
P = {mpm1, p2cudf1, p2cudf2, aspcud1, aspcud2, rpm1, debian1}
depends P → 22P
requirement constraints
P = {mpm1 → {{p2cudf1, p2cudf2, aspcud1, aspcud2}, {rpm1, debian1}}}
conflicts P → 2Pimpossible configurations
P = {p2cudf1 → {p2cudf2, aspcud1, aspcud2},
p2cudf2 → {p2cudf1, aspcud1, aspcud2}}
Definition (consistency of a set of packages)
Q ⊆ P is consistent with (P, depends, conflicts) iff
∀q ∈ Q, (∀dep ∈ depends(q), dep∩Q = ∅)∧(conflicts(q)∩Q = ∅).
Q1 = {mpm1, p2cudf2, debian1}
Q2 = {mpm1, aspcud1, aspcud2, rpm1}
Dependency Management Problem : formal definition
P a set of packages
P = {mpm1, p2cudf1, p2cudf2, aspcud1, aspcud2, rpm1, debian1}
depends P → 22P
requirement constraints
P = {mpm1 → {{p2cudf1, p2cudf2, aspcud1, aspcud2}, {rpm1, debian1}}}
conflicts P → 2Pimpossible configurations
P = {p2cudf1 → {p2cudf2, aspcud1, aspcud2},
p2cudf2 → {p2cudf1, aspcud1, aspcud2}}
Definition (consistency of a set of packages)
Q ⊆ P is consistent with (P, depends, conflicts) iff
∀q ∈ Q, (∀dep ∈ depends(q), dep∩Q = ∅)∧(conflicts(q)∩Q = ∅).
What is the complexity of finding if a Q containing a specific
package exists ?
Just as hard as SAT : NP-complete !
See how to decide satisfiability of (¬a ∨ b ∨ c) ∧ (¬a ∨ ¬b ∨ c) ∧ a ∧ ¬c
package : a
v e r s i o n : 1
c o n f l i c t s : a = 2
package : a
v e r s i o n : 2
c o n f l i c t s : a = 1
package : b
v e r s i o n : 1
c o n f l i c t s : b = 2
package : b
v e r s i o n : 2
c o n f l i c t s : b = 1
package : c
v e r s i o n : 1
c o n f l i c t s : c = 2
package : c
v e r s i o n : 2
c o n f l i c t s : c = 1
package : c l a u s e
v e r s i o n : 1
depends : a = 2 | b = 1 | c = 1
package : c l a u s e
v e r s i o n : 2
depends : a = 2 | b = 2 | c = 1
package : c l a u s e
v e r s i o n : 3
depends : a = 1
package : c l a u s e
v e r s i o n : 4
depends : c = 2
package : formula
v e r s i o n : 1
depends : c l a u s e = 1 , c l a u s e = 2 ,
c l a u s e = 3 , c l a u s e = 4
request : s a t i s f i a b i l i t y
i n s t a l l : formula
Dependencies expressed by clauses
Dependencies can easily be translated into clauses :
package : a
v e r s i o n : 1
depends : b = 2 | b = 1 , c = 1
a1 → (b2 ∨ b1) ∧ c1
¬a1 ∨ b2 ∨ b1, ¬a1 ∨ c1
Conflict can easily be translated into binary clauses :
package : a
v e r s i o n : 1
c o n f l i c t s : b = 2 , d = 1
¬a1 ∨ ¬b2, ¬a1 ∨ ¬d1
17/29
From decision to optimization
NP-complete, so we can use a SAT solver to solve it
Finding a solution is usually not sufficient !
Minimizing the number of installed packages
Minimizing the size of installed packages
Keeping up to date versions of packages
Preferring most recent packages to older ones
...
In practice an aggregation of various criteria
18/29
How did we get interested in such problem ?
1999 First study in the ASP community for Debian package
management, with proof of NP-completeness, and ASP-based
package manager [1]
2005 Generic result for Linux package managers (Debian,
RPM) during EDOS European Project [3]
2006 Contacted by Chris Tucker about Sat4j while he was
working on Opium dependency manager for Linspire Linux
distribution [4] : Sat4j not efficient enough.
2007 Contacted by Pascal Rapicault from IBM Rationale
while he was working on p2 dependency manager for Eclipse.
2008 Mancoosi European Project [2] : follow up to the EDOS
project
competition of package managers with user defined
multi-objective (lexicographic) optimization : p2cudf.
19/29
The specific case of the Eclipse platform
Open platform developed by the Eclipse foundation
Designed for extensibility : the basic platform is enriched with
plugins
Widely adopted (more than 13M downloads for Eclipse 3.4
and 3.5)
Many vendors ship products on top of Eclipse
Plugins are usually coming from various, uncontrolled sources
(main difference compared to Linux case).
20/29
Example of metadata
id=org.eclipse.swt, version=3.5.0, singleton=true
Capabilities:
{namespace=org.eclipse.equinox.p2.iu,
name=org.eclipse.swt, version=3.5.0}
{namespace=org.eclipse.equinox.p2.eclipse.type
name=bundle version=1.0.0}
{namespace=java.package,
name=org.eclipse.swt.graphics, version=1.0.0}
{namespace=java.package,
name=org.eclipse.swt.layout, version=1.2.0}
Requirements:
{namespace=java.package,
name=org.eclipse.swt.accessibility2,
range=[1.0.0,2.0.0), optional=true, filter=(&(os=linux))}
{namespace=java.package, name=org.mozilla.xpcom,
range=[1.0.0, 1.1.0), optional=true, greed=false}
Updates:
{namespace=org.eclipse.equinox.p2.iu, name=org.eclipse.swt,
range=[0.0.0, 3.5.0)}
21/29
Some specific notions in Eclipse
optional dependencies must be satisfied as much as possible. Used
for the drop in folder.
greedy dependencies Non greedy dependencies do not force the
installation of plugins. Used for platform specific
dependencies for instance.
patches allow to change the dependencies during
provisioning. Specifically used when shipping a
product based on Eclipse.
22/29
Example of installable unit patch for the Platform group
id=org.eclipse.ant.critical.fix,version=1.0.0
Capabilities:
{namespace=org.eclipse.equinox.p2.iu,
name=org.eclipse.ant.core.critical.fix, version=3.5.0.v2009}
Requirement Changes:
{ from={namespace=org.eclipse.equinox.p2.iu,
name=org.eclipse.ant.core, range=[3.1.0, 3.4.0)},
to={namespace=org.eclipse.equinox.p2.iu,
name=org.eclipse.ant.core, range=[3.4.3]}}
{ from={namespace=org.eclipse.equinox.p2.iu,
name=org.apache.ant, range=[1.7.1.v2009]},
to={namespace=org.eclipse.equinox.p2.iu,
name=org.apache.ant, range=[1.7.2.v2009]}}
Applicability Scope:
{namespace=org.eclipse.equinox.p2.iu,
name=org.eclipse.platform.feature.group, range=[3.5.0.v2009]}
Lifecycle:
{namespace=org.eclipse.equinox.p2.iu, name=my.product,
range=[1.0.0], greed=false}
Updates:
{namespace=org.eclipse.equinox.p2.iu,
name=org.eclipse.platform.feature.group, range=[0.0.0, 3.5.0.v2009)}
23/29
From decision to optimization
Eclipse dependency problem is under-constrained : it admits lots of
solutions. But they are not of equal quality :
1. An IU should not be installed if there is no dependency to it.
2. If several versions of the same bundle exist, the latest one
should preferably be used.
3. When optional requirements exist, the optional requirements
should be satisfied as much as possible.
4. User installed patches should be applied independently of the
consequences of its application (i.e., the version of the IUs
forced, the number of installable optional dependencies, etc.).
5. Updating an existing installation should not change packages
unrelated from the request being made.
24/29
Some thoughts about that experience
Got lucky to have the ability to work on that problem,
because Eclipse needed :
An open source solver (Thanks to ObjectWeb/OW2)
In Java
With the right license (Compatible with EPL)
No issues in modeling constraints (but optionality)
Main issues met have been :
Real integration with Sat4j needed (explanation support, 3.5)
Building a better objective function (patches, stability of
installations 3.5-3.6)
Understanding subtleties like patches and non greedy use cases.
Main reward is that is works routinely every day since June
2008 !
25/29
Sat4j/p2 allowed the creation of the marketplace in 2011
26/29
Outline
What is the SATisfiability problem ? (the lab)
What is the software dependency problem ? (your desktop)
Sat4j @ OW2
Sat4j and OW2
Sat4j is a library, a tool, not a software targeting the end-user
(similar to ASM)
Sat4j is managed by a small team : Daniel Le Berre and Anne
Parrain, plus additional contributors (St´ephanie Roussel and
Emmanuel Lonca in recent years)
Sat4j IP and support is managed by CNRS
Dual GNU LGPL and EPL licensing model to be both
academic and industry friendly
Sat4j is well established in the software engineering academic
community (especially software product lines)
Sat4j used in production in various areas since 2005
(bioinformatics, software verification)
Thanks for your attention : Questions ?
29/29
Tommi Syrj¨anen.
A rule-based formal model for software configuration.
Master’s thesis, Helsinki University of Technology, 1999.
Mancoosi Team, 2008.
http ://www.mancoosi.org/.
WP2 Team.
Report on formal management of software dependencies.
Technical report, Environment for the Development and
Distribution of Open Source Software (EDOS)
FP6-IST-004312, 2005.
Chris Tucker, David Shuffelton, Ranjit Jhala, and Sorin Lerner.
Opium : Optimal package install/uninstall manager.
In ICSE, pages 178–188. IEEE Computer Society, 2007.
29/29

More Related Content

Viewers also liked

Participating in AppHub, the European Open Source Marketplace
Participating in AppHub, the European Open Source MarketplaceParticipating in AppHub, the European Open Source Marketplace
Participating in AppHub, the European Open Source MarketplaceOW2
 
What’s new in Bonita Open Solution ? OW2con'12, Paris
What’s new in Bonita Open Solution ? OW2con'12, ParisWhat’s new in Bonita Open Solution ? OW2con'12, Paris
What’s new in Bonita Open Solution ? OW2con'12, ParisOW2
 
OW2con'14 - Sustainable financing of open source, an insider view, XWiki
OW2con'14 - Sustainable financing of open source, an insider view, XWikiOW2con'14 - Sustainable financing of open source, an insider view, XWiki
OW2con'14 - Sustainable financing of open source, an insider view, XWikiOW2
 
Beowulf summary
Beowulf summaryBeowulf summary
Beowulf summaryMr. Euc@s
 
​Presentation team ngx 5주차 발표자료
​Presentation team ngx 5주차 발표자료​Presentation team ngx 5주차 발표자료
​Presentation team ngx 5주차 발표자료Matthew Chang
 
POSS2016Nov16-The Open Source Software Value Chain
POSS2016Nov16-The Open Source Software Value ChainPOSS2016Nov16-The Open Source Software Value Chain
POSS2016Nov16-The Open Source Software Value ChainOW2
 
Numérique et accessibilité: les personnes handicapées intellectuelles sont au...
Numérique et accessibilité: les personnes handicapées intellectuelles sont au...Numérique et accessibilité: les personnes handicapées intellectuelles sont au...
Numérique et accessibilité: les personnes handicapées intellectuelles sont au...OW2
 
Chapter 11
Chapter 11Chapter 11
Chapter 11dphil002
 
Venus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScienceVenus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScienceOW2
 
Chapter 12
Chapter 12Chapter 12
Chapter 12dphil002
 
OW2 Next Gen Quality Program
OW2 Next Gen Quality ProgramOW2 Next Gen Quality Program
OW2 Next Gen Quality ProgramOW2
 
Database Design 2반 5조 발표자료
Database Design 2반 5조 발표자료Database Design 2반 5조 발표자료
Database Design 2반 5조 발표자료Matthew Chang
 
Dependency management and licence compliance, OW2con'16, Paris.
Dependency management and licence compliance, OW2con'16, Paris. Dependency management and licence compliance, OW2con'16, Paris.
Dependency management and licence compliance, OW2con'16, Paris. OW2
 
Automatizing SpagoBI, OW2con'16, Paris.
Automatizing SpagoBI, OW2con'16, Paris. Automatizing SpagoBI, OW2con'16, Paris.
Automatizing SpagoBI, OW2con'16, Paris. OW2
 
Amsterdam Data Portal
Amsterdam Data Portal Amsterdam Data Portal
Amsterdam Data Portal OW2
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OW2
 
SOA in the cloud with FraSCAti, OW2con11, Nov 24-25, Paris
SOA in the cloud with FraSCAti, OW2con11, Nov 24-25, ParisSOA in the cloud with FraSCAti, OW2con11, Nov 24-25, Paris
SOA in the cloud with FraSCAti, OW2con11, Nov 24-25, ParisOW2
 
Mobile integration
Mobile integrationMobile integration
Mobile integrationwall530
 
OW2con'14 - The changing nature of open source software, Cédric Thomas, OW2
OW2con'14 - The changing nature of open source software, Cédric Thomas, OW2OW2con'14 - The changing nature of open source software, Cédric Thomas, OW2
OW2con'14 - The changing nature of open source software, Cédric Thomas, OW2OW2
 

Viewers also liked (20)

Participating in AppHub, the European Open Source Marketplace
Participating in AppHub, the European Open Source MarketplaceParticipating in AppHub, the European Open Source Marketplace
Participating in AppHub, the European Open Source Marketplace
 
What’s new in Bonita Open Solution ? OW2con'12, Paris
What’s new in Bonita Open Solution ? OW2con'12, ParisWhat’s new in Bonita Open Solution ? OW2con'12, Paris
What’s new in Bonita Open Solution ? OW2con'12, Paris
 
OW2con'14 - Sustainable financing of open source, an insider view, XWiki
OW2con'14 - Sustainable financing of open source, an insider view, XWikiOW2con'14 - Sustainable financing of open source, an insider view, XWiki
OW2con'14 - Sustainable financing of open source, an insider view, XWiki
 
Beowulf summary
Beowulf summaryBeowulf summary
Beowulf summary
 
​Presentation team ngx 5주차 발표자료
​Presentation team ngx 5주차 발표자료​Presentation team ngx 5주차 발표자료
​Presentation team ngx 5주차 발표자료
 
POSS2016Nov16-The Open Source Software Value Chain
POSS2016Nov16-The Open Source Software Value ChainPOSS2016Nov16-The Open Source Software Value Chain
POSS2016Nov16-The Open Source Software Value Chain
 
Numérique et accessibilité: les personnes handicapées intellectuelles sont au...
Numérique et accessibilité: les personnes handicapées intellectuelles sont au...Numérique et accessibilité: les personnes handicapées intellectuelles sont au...
Numérique et accessibilité: les personnes handicapées intellectuelles sont au...
 
Chapter 11
Chapter 11Chapter 11
Chapter 11
 
Venus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScienceVenus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScience
 
Chapter 12
Chapter 12Chapter 12
Chapter 12
 
OW2 Next Gen Quality Program
OW2 Next Gen Quality ProgramOW2 Next Gen Quality Program
OW2 Next Gen Quality Program
 
Database Design 2반 5조 발표자료
Database Design 2반 5조 발표자료Database Design 2반 5조 발표자료
Database Design 2반 5조 발표자료
 
Dependency management and licence compliance, OW2con'16, Paris.
Dependency management and licence compliance, OW2con'16, Paris. Dependency management and licence compliance, OW2con'16, Paris.
Dependency management and licence compliance, OW2con'16, Paris.
 
Automatizing SpagoBI, OW2con'16, Paris.
Automatizing SpagoBI, OW2con'16, Paris. Automatizing SpagoBI, OW2con'16, Paris.
Automatizing SpagoBI, OW2con'16, Paris.
 
Amsterdam Data Portal
Amsterdam Data Portal Amsterdam Data Portal
Amsterdam Data Portal
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...
 
SOA in the cloud with FraSCAti, OW2con11, Nov 24-25, Paris
SOA in the cloud with FraSCAti, OW2con11, Nov 24-25, ParisSOA in the cloud with FraSCAti, OW2con11, Nov 24-25, Paris
SOA in the cloud with FraSCAti, OW2con11, Nov 24-25, Paris
 
Mobile integration
Mobile integrationMobile integration
Mobile integration
 
ELPS Strategies
ELPS StrategiesELPS Strategies
ELPS Strategies
 
OW2con'14 - The changing nature of open source software, Cédric Thomas, OW2
OW2con'14 - The changing nature of open source software, Cédric Thomas, OW2OW2con'14 - The changing nature of open source software, Cédric Thomas, OW2
OW2con'14 - The changing nature of open source software, Cédric Thomas, OW2
 

Similar to Sat4j: from the lab to desktop computers. OW2con'15, November 17, Paris.

COCOA: Communication-Efficient Coordinate Ascent
COCOA: Communication-Efficient Coordinate AscentCOCOA: Communication-Efficient Coordinate Ascent
COCOA: Communication-Efficient Coordinate Ascentjeykottalam
 
Virginia Smith, Researcher, UC Berkeley at MLconf SF 2016
Virginia Smith, Researcher, UC Berkeley at MLconf SF 2016Virginia Smith, Researcher, UC Berkeley at MLconf SF 2016
Virginia Smith, Researcher, UC Berkeley at MLconf SF 2016MLconf
 
On the development and distribution of R packages
On the development and distribution of R packagesOn the development and distribution of R packages
On the development and distribution of R packagesTom Mens
 
Introduction to Compiler Development
Introduction to Compiler DevelopmentIntroduction to Compiler Development
Introduction to Compiler DevelopmentLogan Chien
 
NIPS2017 Few-shot Learning and Graph Convolution
NIPS2017 Few-shot Learning and Graph ConvolutionNIPS2017 Few-shot Learning and Graph Convolution
NIPS2017 Few-shot Learning and Graph ConvolutionKazuki Fujikawa
 
HW 5-RSAascii2str.mfunction str = ascii2str(ascii) .docx
HW 5-RSAascii2str.mfunction str = ascii2str(ascii)        .docxHW 5-RSAascii2str.mfunction str = ascii2str(ascii)        .docx
HW 5-RSAascii2str.mfunction str = ascii2str(ascii) .docxwellesleyterresa
 
running stable diffusion on android
running stable diffusion on androidrunning stable diffusion on android
running stable diffusion on androidKoan-Sin Tan
 
PF_MAO_2010_Souam
PF_MAO_2010_SouamPF_MAO_2010_Souam
PF_MAO_2010_SouamMDO_Lab
 
Gossip & Key Value Store
Gossip & Key Value StoreGossip & Key Value Store
Gossip & Key Value StoreSajeev P
 
Container and algorithms(C++)
Container and algorithms(C++)Container and algorithms(C++)
Container and algorithms(C++)JerryHe
 
OpenPOWER Webinar from University of Delaware - Title :OpenMP (offloading) o...
OpenPOWER Webinar from University of Delaware  - Title :OpenMP (offloading) o...OpenPOWER Webinar from University of Delaware  - Title :OpenMP (offloading) o...
OpenPOWER Webinar from University of Delaware - Title :OpenMP (offloading) o...Ganesan Narayanasamy
 
An Empirical Study of Identical Function Clones in CRAN
An Empirical Study of Identical Function Clones in CRANAn Empirical Study of Identical Function Clones in CRAN
An Empirical Study of Identical Function Clones in CRANTom Mens
 
graph2tab, a library to convert experimental workflow graphs into tabular for...
graph2tab, a library to convert experimental workflow graphs into tabular for...graph2tab, a library to convert experimental workflow graphs into tabular for...
graph2tab, a library to convert experimental workflow graphs into tabular for...Rothamsted Research, UK
 
An Experiment with Checking the glibc Library
An Experiment with Checking the glibc LibraryAn Experiment with Checking the glibc Library
An Experiment with Checking the glibc LibraryAndrey Karpov
 

Similar to Sat4j: from the lab to desktop computers. OW2con'15, November 17, Paris. (20)

COCOA: Communication-Efficient Coordinate Ascent
COCOA: Communication-Efficient Coordinate AscentCOCOA: Communication-Efficient Coordinate Ascent
COCOA: Communication-Efficient Coordinate Ascent
 
Virginia Smith, Researcher, UC Berkeley at MLconf SF 2016
Virginia Smith, Researcher, UC Berkeley at MLconf SF 2016Virginia Smith, Researcher, UC Berkeley at MLconf SF 2016
Virginia Smith, Researcher, UC Berkeley at MLconf SF 2016
 
On the development and distribution of R packages
On the development and distribution of R packagesOn the development and distribution of R packages
On the development and distribution of R packages
 
Go 1.8 Release Party
Go 1.8 Release PartyGo 1.8 Release Party
Go 1.8 Release Party
 
Type and proof structures for concurrency
Type and proof structures for concurrencyType and proof structures for concurrency
Type and proof structures for concurrency
 
Introduction to Compiler Development
Introduction to Compiler DevelopmentIntroduction to Compiler Development
Introduction to Compiler Development
 
C Programming Homework Help
C Programming Homework HelpC Programming Homework Help
C Programming Homework Help
 
modeling.ppt
modeling.pptmodeling.ppt
modeling.ppt
 
NIPS2017 Few-shot Learning and Graph Convolution
NIPS2017 Few-shot Learning and Graph ConvolutionNIPS2017 Few-shot Learning and Graph Convolution
NIPS2017 Few-shot Learning and Graph Convolution
 
HW 5-RSAascii2str.mfunction str = ascii2str(ascii) .docx
HW 5-RSAascii2str.mfunction str = ascii2str(ascii)        .docxHW 5-RSAascii2str.mfunction str = ascii2str(ascii)        .docx
HW 5-RSAascii2str.mfunction str = ascii2str(ascii) .docx
 
running stable diffusion on android
running stable diffusion on androidrunning stable diffusion on android
running stable diffusion on android
 
PF_MAO_2010_Souam
PF_MAO_2010_SouamPF_MAO_2010_Souam
PF_MAO_2010_Souam
 
Gossip & Key Value Store
Gossip & Key Value StoreGossip & Key Value Store
Gossip & Key Value Store
 
Container and algorithms(C++)
Container and algorithms(C++)Container and algorithms(C++)
Container and algorithms(C++)
 
PF_MAO2010 Souma
PF_MAO2010 SoumaPF_MAO2010 Souma
PF_MAO2010 Souma
 
OpenPOWER Webinar from University of Delaware - Title :OpenMP (offloading) o...
OpenPOWER Webinar from University of Delaware  - Title :OpenMP (offloading) o...OpenPOWER Webinar from University of Delaware  - Title :OpenMP (offloading) o...
OpenPOWER Webinar from University of Delaware - Title :OpenMP (offloading) o...
 
An Empirical Study of Identical Function Clones in CRAN
An Empirical Study of Identical Function Clones in CRANAn Empirical Study of Identical Function Clones in CRAN
An Empirical Study of Identical Function Clones in CRAN
 
graph2tab, a library to convert experimental workflow graphs into tabular for...
graph2tab, a library to convert experimental workflow graphs into tabular for...graph2tab, a library to convert experimental workflow graphs into tabular for...
graph2tab, a library to convert experimental workflow graphs into tabular for...
 
Clustering techniques
Clustering techniquesClustering techniques
Clustering techniques
 
An Experiment with Checking the glibc Library
An Experiment with Checking the glibc LibraryAn Experiment with Checking the glibc Library
An Experiment with Checking the glibc Library
 

More from OW2

OW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in Roma
OW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in RomaOW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in Roma
OW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in RomaOW2
 
The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...
The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...
The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...OW2
 
GLPi v.10, les fonctionnalités principales et l'offre cloud
GLPi v.10, les fonctionnalités principales et l'offre cloudGLPi v.10, les fonctionnalités principales et l'offre cloud
GLPi v.10, les fonctionnalités principales et l'offre cloudOW2
 
Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...
Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...
Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...OW2
 
FusionIAM : la gestion des identités et des accés open source
FusionIAM : la gestion des identités et des accés open sourceFusionIAM : la gestion des identités et des accés open source
FusionIAM : la gestion des identités et des accés open sourceOW2
 
OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...
OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...
OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...OW2
 
SFScon'20 Bringing the User into the Equation
SFScon'20 Bringing the User into the EquationSFScon'20 Bringing the User into the Equation
SFScon'20 Bringing the User into the EquationOW2
 
Towards a sustainable solution to open source sustainability, OW2online20, Ju...
Towards a sustainable solution to open source sustainability, OW2online20, Ju...Towards a sustainable solution to open source sustainability, OW2online20, Ju...
Towards a sustainable solution to open source sustainability, OW2online20, Ju...OW2
 
Advanced proactive and polymorphing cloud application adaptation with MORPHEM...
Advanced proactive and polymorphing cloud application adaptation with MORPHEM...Advanced proactive and polymorphing cloud application adaptation with MORPHEM...
Advanced proactive and polymorphing cloud application adaptation with MORPHEM...OW2
 
Open Source governance and the Eclipse Foundation, OW2online, June 2020
Open Source governance and the Eclipse Foundation, OW2online, June 2020Open Source governance and the Eclipse Foundation, OW2online, June 2020
Open Source governance and the Eclipse Foundation, OW2online, June 2020OW2
 
Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020OW2
 
Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...
Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...
Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...OW2
 
Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020
Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020
Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020OW2
 
Open Source Compliance at Orange, OW2online, June 2020
Open Source Compliance at Orange, OW2online, June 2020Open Source Compliance at Orange, OW2online, June 2020
Open Source Compliance at Orange, OW2online, June 2020OW2
 
Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020
Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020
Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020OW2
 
Intelligent package management with FASTEN, OW2online, June 2020
Intelligent package management with FASTEN, OW2online, June 2020Intelligent package management with FASTEN, OW2online, June 2020
Intelligent package management with FASTEN, OW2online, June 2020OW2
 
DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020
DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020
DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020OW2
 
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...OW2
 
Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...
Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...
Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...OW2
 
Cacti and Big Data at Orange France, OW2online, June 2020
Cacti and Big Data at Orange France, OW2online, June 2020Cacti and Big Data at Orange France, OW2online, June 2020
Cacti and Big Data at Orange France, OW2online, June 2020OW2
 

More from OW2 (20)

OW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in Roma
OW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in RomaOW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in Roma
OW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in Roma
 
The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...
The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...
The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...
 
GLPi v.10, les fonctionnalités principales et l'offre cloud
GLPi v.10, les fonctionnalités principales et l'offre cloudGLPi v.10, les fonctionnalités principales et l'offre cloud
GLPi v.10, les fonctionnalités principales et l'offre cloud
 
Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...
Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...
Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...
 
FusionIAM : la gestion des identités et des accés open source
FusionIAM : la gestion des identités et des accés open sourceFusionIAM : la gestion des identités et des accés open source
FusionIAM : la gestion des identités et des accés open source
 
OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...
OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...
OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...
 
SFScon'20 Bringing the User into the Equation
SFScon'20 Bringing the User into the EquationSFScon'20 Bringing the User into the Equation
SFScon'20 Bringing the User into the Equation
 
Towards a sustainable solution to open source sustainability, OW2online20, Ju...
Towards a sustainable solution to open source sustainability, OW2online20, Ju...Towards a sustainable solution to open source sustainability, OW2online20, Ju...
Towards a sustainable solution to open source sustainability, OW2online20, Ju...
 
Advanced proactive and polymorphing cloud application adaptation with MORPHEM...
Advanced proactive and polymorphing cloud application adaptation with MORPHEM...Advanced proactive and polymorphing cloud application adaptation with MORPHEM...
Advanced proactive and polymorphing cloud application adaptation with MORPHEM...
 
Open Source governance and the Eclipse Foundation, OW2online, June 2020
Open Source governance and the Eclipse Foundation, OW2online, June 2020Open Source governance and the Eclipse Foundation, OW2online, June 2020
Open Source governance and the Eclipse Foundation, OW2online, June 2020
 
Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020
 
Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...
Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...
Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...
 
Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020
Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020
Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020
 
Open Source Compliance at Orange, OW2online, June 2020
Open Source Compliance at Orange, OW2online, June 2020Open Source Compliance at Orange, OW2online, June 2020
Open Source Compliance at Orange, OW2online, June 2020
 
Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020
Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020
Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020
 
Intelligent package management with FASTEN, OW2online, June 2020
Intelligent package management with FASTEN, OW2online, June 2020Intelligent package management with FASTEN, OW2online, June 2020
Intelligent package management with FASTEN, OW2online, June 2020
 
DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020
DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020
DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020
 
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
 
Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...
Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...
Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...
 
Cacti and Big Data at Orange France, OW2online, June 2020
Cacti and Big Data at Orange France, OW2online, June 2020Cacti and Big Data at Orange France, OW2online, June 2020
Cacti and Big Data at Orange France, OW2online, June 2020
 

Recently uploaded

Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...FIDO Alliance
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfFIDO Alliance
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxFIDO Alliance
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...FIDO Alliance
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTopCSSGallery
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfFIDO Alliance
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...panagenda
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfFIDO Alliance
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...FIDO Alliance
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform EngineeringMarcus Vechiato
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGDSC PJATK
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxFIDO Alliance
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024Lorenzo Miniero
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxFIDO Alliance
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024Stephen Perrenod
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxFIDO Alliance
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...ScyllaDB
 

Recently uploaded (20)

Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 

Sat4j: from the lab to desktop computers. OW2con'15, November 17, Paris.

  • 1. Sat4j: from the lab to desktop computers Daniel Le Berre Joint work with Emmanuel Lonca, Anne Parrain, Pascal Rapicault, St´ephanie Roussel CNRS - Universit´e d’Artois OW2con’15, Issy-Les-Moulineaux, November 17, 2015 1/29
  • 2. Outline What is the SATisfiability problem ? (the lab) What is the software dependency problem ? (your desktop) Sat4j @ OW2
  • 3. The SAT problem : textbook definition Definition Input : A set of clauses C built from a propositional language with n variables. Output : Is there an assignment of the n variables that satisfies all those clauses ? 3/29
  • 4. The SAT problem : textbook definition Definition Input : A set of clauses C built from a propositional language with n variables. Output : Is there an assignment of the n variables that satisfies all those clauses ? Example C1 = {¬a ∨ b, ¬b ∨ c} = (¬a ∨ b) ∧ (¬b ∨ c) = (a + b).(b + c) C2 = C1 ∪ {a, ¬c} = C1 ∧ a ∧ ¬c For C1, the answer is yes, for C2 the answer is no C1 |= ¬(a ∧ ¬c) = ¬a ∨ c 3/29
  • 5. 40 years ago ... Canonical NP-Complete problem (Cook, 1971) SAT is in theory intractable ... 4/29
  • 6. 40 years ago ... Canonical NP-Complete problem (Cook, 1971) SAT is in theory intractable ... ... in the worst case ! 4/29
  • 7. 20 years ago ... Threshold phenomenon on randomly generated k-SAT instances (Mitchell,Selman,Levesque, 1992) Local search for solving large satisfiable SAT benchmarks DPLL (exhaustive binary search) for solving unsatisfiable benchmarks Application-oriented complete SAT solvers (SATO, RelSAT, GRASP) Extensions to Boolean optimization exists (e.g. opbdp, Bsolo ...)
  • 8. 15 years ago : the killing app, Bounded Model Checking TACAS 2014 most influential paper in the first 20 years awarded to A. Biere A. Cimatti E. Clarke Y. Zhu for Symbolic Model Checking without BDDs 6/29
  • 9. 15 years ago, the killing solver, Chaff Computer Aided Verification Award 2009 awarded to Conor F. Madigan Sharad Malik Joao Marques-Silva Matthew Moskewicz Karem Sakallah Lintao Zhang Ying Zhao for fundamental contributions to the development of high-performance Boolean satisfiability solvers. Authors of GRASP SAT solver Authors of CHAFF SAT solver 7/29
  • 10. 15 years ago Killing app : Bounded Model Checking Killing solver : Chaff, based on Grasp architecture Works well on many application benchmarks ! Does not work on randomly generated benchmarks ! Start of the Conflict Driven Clause Learning domination ... Extension to optimization problems (PBO) : Satire, Satzoo, PBS, PBChaff, Galena ... 8/29
  • 11. 10 years ago, new killing solver Minisat Fast, widely used, easy to extend implementation of a CDCL solver (Community Award during SAT Competition 2014). SAT solver is incremental (Minisat) Pre-processors are important (SatELite) Boolean optimization takes off (PB competition in 2005, MAXSAT evaluation in 2006) Interest on CNF encodings for cardinality constraints and PB constraints starts (Minisat+). Sat4j started as an implementation in Java of the Minisat specification in 2004 9/29
  • 12. Now SAT solver returns a verifiable proof in case of unsatisfiability (since SAT Competition 2013) Wide variety of freely available SAT solvers for research purposes Much limited amount of Boolean optimizers Growing interest for MAXSAT Limited interest for Pseudo-Boolean Optimization All this available in Sat4j 10/29
  • 13. Your life as a developer has been impacted by SAT Most companies doing software or hardware verification are now using SAT solvers. Intel core I7 processor designed with the help of SAT solvers [Kaivola et al, CAV 2009] Windows 7 device drivers verified using SAT related technology (Z3, SMT solver) [De Moura and Bjorner, IJCAR 2010] The Eclipse open platform uses SAT technology for solving dependencies between components [Le Berre and Rapicault, IWOCE 2009]
  • 14. Outline What is the SATisfiability problem ? (the lab) What is the software dependency problem ? (your desktop) Sat4j @ OW2
  • 15. Question to the audience What makes your favorite Linux package repository or Eclipse marketplace different from your favorite smartphone “app store” ? 13/29
  • 16. Question to the audience What makes your favorite Linux package repository or Eclipse marketplace different from your favorite smartphone “app store” ? The former manage their component dependencies, not the latter ! 13/29
  • 17. An example of Ubuntu metadata Package : f i r e f o x −3.0 P r i o r i t y : o p t i o n a l Section : web I n s t a l l e d −Size : 3456 Maintainer : Alexander Sack <asac@ubuntu . com> A r c h i t e c t u r e : i386 Version : 3.0.16+ nobinonly −0ubuntu0 . 9 . 0 4 . 1 Replaces : f i r e f o x (<< 3) , f i r e f o x −granparadiso , f i r e f o x −l i b t h a i , f i r e f o x −trunk Provides : f i r e f o x −l i b t h a i , www−browser Depends : f o n t c o n f i g , psmisc , d e b i a n u t i l s (>= 1.16) , xulrunner −1.9 (>= 1 . 9 . 0 . 1 ) , l i b a t k 1 .0−0 (>= 1 . 2 0 . 0 ) , l i b c 6 (>= 2 . 4 ) , l i b c a i r o 2 (>= 1 . 2 . 4 ) , l i b f o n t c o n f i g 1 (>= 2 . 4 . 0 ) , l i b f r e e t y p e 6 (>= 2 . 2 . 1 ) , l i b g c c 1 (>= 1 : 4 . 1 . 1 ) , l i b g l i b 2 .0−0 (>= 2 . 1 6 . 0 ) , l i b g t k 2 .0−0 (>= 2 . 1 6 . 0 ) , l i b n s p r 4 −0d (>= 4.7.3 −0 ubuntu1 ˜) , libpango1 .0−0 (>= 1 . 1 4 . 0 ) , l i b s t d c++6 (>= 4 . 1 . 1 ) , f i r e f o x −3.0− branding (>= 3.0.3+ nobinonly −0ubuntu1 ˜) | abrowser −3.0− branding (>= 3.0.3+ nobinonly −0ubuntu1 ˜) Suggests : ubufox , f i r e f o x −3.0−gnome−support (= 3.0.16+ nobinonly −0ubuntu0 . 9 . 0 4 . 1 ) , latex −xft −fonts , l i b t h a i 0 C o n f l i c t s : f i r e f o x (<< 3) , f i r e f o x −g ra npa r ad is o (<< 3.0˜ alpha8 −0) , f i r e f o x −l i b t h a i , f i r e f o x −trunk (<< 3.0˜ a8˜ cvs20070914t1713 −0) Size : 887822 D e s c r i p t i o n : s a f e and easy web browser from M o z i l l a F i r e f o x d e l i v e r s safe , easy web browsing . A f a m i l i a r user i n t e r f a c e , enhanced s e c u r i t y f e a t u r e s i n c l u d i n g p r o t e c t i o n from o n l i n e i d e n t i t y theft , and i n t e g r a t e d search l e t you get the most out of the web . . I n s t a l l t h i s f i r e f o x package too , i f you want to be a u t o m a t i c a l l y upgraded to new major f i r e f o x v e r s i o n s i n the f u t u r e . 14/29
  • 18. Dependency Management Problem : formal definition P a set of packages P = {mpm1, p2cudf1, p2cudf2, aspcud1, aspcud2, rpm1, debian1} depends P → 22P requirement constraints P = {mpm1 → {{p2cudf1, p2cudf2, aspcud1, aspcud2}, {rpm1, debian1}}} conflicts P → 2Pimpossible configurations P = {p2cudf1 → {p2cudf2, aspcud1, aspcud2}, p2cudf2 → {p2cudf1, aspcud1, aspcud2}} Definition (consistency of a set of packages) Q ⊆ P is consistent with (P, depends, conflicts) iff ∀q ∈ Q, (∀dep ∈ depends(q), dep∩Q = ∅)∧(conflicts(q)∩Q = ∅). Q1 = {mpm1, p2cudf2, debian1} Q2 = {mpm1, aspcud1, aspcud2, rpm1}
  • 19. Dependency Management Problem : formal definition P a set of packages P = {mpm1, p2cudf1, p2cudf2, aspcud1, aspcud2, rpm1, debian1} depends P → 22P requirement constraints P = {mpm1 → {{p2cudf1, p2cudf2, aspcud1, aspcud2}, {rpm1, debian1}}} conflicts P → 2Pimpossible configurations P = {p2cudf1 → {p2cudf2, aspcud1, aspcud2}, p2cudf2 → {p2cudf1, aspcud1, aspcud2}} Definition (consistency of a set of packages) Q ⊆ P is consistent with (P, depends, conflicts) iff ∀q ∈ Q, (∀dep ∈ depends(q), dep∩Q = ∅)∧(conflicts(q)∩Q = ∅). What is the complexity of finding if a Q containing a specific package exists ?
  • 20. Just as hard as SAT : NP-complete ! See how to decide satisfiability of (¬a ∨ b ∨ c) ∧ (¬a ∨ ¬b ∨ c) ∧ a ∧ ¬c package : a v e r s i o n : 1 c o n f l i c t s : a = 2 package : a v e r s i o n : 2 c o n f l i c t s : a = 1 package : b v e r s i o n : 1 c o n f l i c t s : b = 2 package : b v e r s i o n : 2 c o n f l i c t s : b = 1 package : c v e r s i o n : 1 c o n f l i c t s : c = 2 package : c v e r s i o n : 2 c o n f l i c t s : c = 1 package : c l a u s e v e r s i o n : 1 depends : a = 2 | b = 1 | c = 1 package : c l a u s e v e r s i o n : 2 depends : a = 2 | b = 2 | c = 1 package : c l a u s e v e r s i o n : 3 depends : a = 1 package : c l a u s e v e r s i o n : 4 depends : c = 2 package : formula v e r s i o n : 1 depends : c l a u s e = 1 , c l a u s e = 2 , c l a u s e = 3 , c l a u s e = 4 request : s a t i s f i a b i l i t y i n s t a l l : formula
  • 21. Dependencies expressed by clauses Dependencies can easily be translated into clauses : package : a v e r s i o n : 1 depends : b = 2 | b = 1 , c = 1 a1 → (b2 ∨ b1) ∧ c1 ¬a1 ∨ b2 ∨ b1, ¬a1 ∨ c1 Conflict can easily be translated into binary clauses : package : a v e r s i o n : 1 c o n f l i c t s : b = 2 , d = 1 ¬a1 ∨ ¬b2, ¬a1 ∨ ¬d1 17/29
  • 22. From decision to optimization NP-complete, so we can use a SAT solver to solve it Finding a solution is usually not sufficient ! Minimizing the number of installed packages Minimizing the size of installed packages Keeping up to date versions of packages Preferring most recent packages to older ones ... In practice an aggregation of various criteria 18/29
  • 23. How did we get interested in such problem ? 1999 First study in the ASP community for Debian package management, with proof of NP-completeness, and ASP-based package manager [1] 2005 Generic result for Linux package managers (Debian, RPM) during EDOS European Project [3] 2006 Contacted by Chris Tucker about Sat4j while he was working on Opium dependency manager for Linspire Linux distribution [4] : Sat4j not efficient enough. 2007 Contacted by Pascal Rapicault from IBM Rationale while he was working on p2 dependency manager for Eclipse. 2008 Mancoosi European Project [2] : follow up to the EDOS project competition of package managers with user defined multi-objective (lexicographic) optimization : p2cudf. 19/29
  • 24. The specific case of the Eclipse platform Open platform developed by the Eclipse foundation Designed for extensibility : the basic platform is enriched with plugins Widely adopted (more than 13M downloads for Eclipse 3.4 and 3.5) Many vendors ship products on top of Eclipse Plugins are usually coming from various, uncontrolled sources (main difference compared to Linux case). 20/29
  • 25. Example of metadata id=org.eclipse.swt, version=3.5.0, singleton=true Capabilities: {namespace=org.eclipse.equinox.p2.iu, name=org.eclipse.swt, version=3.5.0} {namespace=org.eclipse.equinox.p2.eclipse.type name=bundle version=1.0.0} {namespace=java.package, name=org.eclipse.swt.graphics, version=1.0.0} {namespace=java.package, name=org.eclipse.swt.layout, version=1.2.0} Requirements: {namespace=java.package, name=org.eclipse.swt.accessibility2, range=[1.0.0,2.0.0), optional=true, filter=(&(os=linux))} {namespace=java.package, name=org.mozilla.xpcom, range=[1.0.0, 1.1.0), optional=true, greed=false} Updates: {namespace=org.eclipse.equinox.p2.iu, name=org.eclipse.swt, range=[0.0.0, 3.5.0)} 21/29
  • 26. Some specific notions in Eclipse optional dependencies must be satisfied as much as possible. Used for the drop in folder. greedy dependencies Non greedy dependencies do not force the installation of plugins. Used for platform specific dependencies for instance. patches allow to change the dependencies during provisioning. Specifically used when shipping a product based on Eclipse. 22/29
  • 27. Example of installable unit patch for the Platform group id=org.eclipse.ant.critical.fix,version=1.0.0 Capabilities: {namespace=org.eclipse.equinox.p2.iu, name=org.eclipse.ant.core.critical.fix, version=3.5.0.v2009} Requirement Changes: { from={namespace=org.eclipse.equinox.p2.iu, name=org.eclipse.ant.core, range=[3.1.0, 3.4.0)}, to={namespace=org.eclipse.equinox.p2.iu, name=org.eclipse.ant.core, range=[3.4.3]}} { from={namespace=org.eclipse.equinox.p2.iu, name=org.apache.ant, range=[1.7.1.v2009]}, to={namespace=org.eclipse.equinox.p2.iu, name=org.apache.ant, range=[1.7.2.v2009]}} Applicability Scope: {namespace=org.eclipse.equinox.p2.iu, name=org.eclipse.platform.feature.group, range=[3.5.0.v2009]} Lifecycle: {namespace=org.eclipse.equinox.p2.iu, name=my.product, range=[1.0.0], greed=false} Updates: {namespace=org.eclipse.equinox.p2.iu, name=org.eclipse.platform.feature.group, range=[0.0.0, 3.5.0.v2009)} 23/29
  • 28. From decision to optimization Eclipse dependency problem is under-constrained : it admits lots of solutions. But they are not of equal quality : 1. An IU should not be installed if there is no dependency to it. 2. If several versions of the same bundle exist, the latest one should preferably be used. 3. When optional requirements exist, the optional requirements should be satisfied as much as possible. 4. User installed patches should be applied independently of the consequences of its application (i.e., the version of the IUs forced, the number of installable optional dependencies, etc.). 5. Updating an existing installation should not change packages unrelated from the request being made. 24/29
  • 29. Some thoughts about that experience Got lucky to have the ability to work on that problem, because Eclipse needed : An open source solver (Thanks to ObjectWeb/OW2) In Java With the right license (Compatible with EPL) No issues in modeling constraints (but optionality) Main issues met have been : Real integration with Sat4j needed (explanation support, 3.5) Building a better objective function (patches, stability of installations 3.5-3.6) Understanding subtleties like patches and non greedy use cases. Main reward is that is works routinely every day since June 2008 ! 25/29
  • 30. Sat4j/p2 allowed the creation of the marketplace in 2011 26/29
  • 31. Outline What is the SATisfiability problem ? (the lab) What is the software dependency problem ? (your desktop) Sat4j @ OW2
  • 32. Sat4j and OW2 Sat4j is a library, a tool, not a software targeting the end-user (similar to ASM) Sat4j is managed by a small team : Daniel Le Berre and Anne Parrain, plus additional contributors (St´ephanie Roussel and Emmanuel Lonca in recent years) Sat4j IP and support is managed by CNRS Dual GNU LGPL and EPL licensing model to be both academic and industry friendly Sat4j is well established in the software engineering academic community (especially software product lines) Sat4j used in production in various areas since 2005 (bioinformatics, software verification)
  • 33. Thanks for your attention : Questions ? 29/29
  • 34. Tommi Syrj¨anen. A rule-based formal model for software configuration. Master’s thesis, Helsinki University of Technology, 1999. Mancoosi Team, 2008. http ://www.mancoosi.org/. WP2 Team. Report on formal management of software dependencies. Technical report, Environment for the Development and Distribution of Open Source Software (EDOS) FP6-IST-004312, 2005. Chris Tucker, David Shuffelton, Ranjit Jhala, and Sorin Lerner. Opium : Optimal package install/uninstall manager. In ICSE, pages 178–188. IEEE Computer Society, 2007. 29/29