SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
LP solver in the browser
Fabion Kauker
f.kauker@gmail.com
Part of this research was conducted at 3-GIS
The challenge
● Writing models requires a specific environment + language
● Once you have a model you want to make it data driven
● Many options between commercial and open source solvers
● Lots of choices for application architecture
● Many applications require client side data access
● Solvers and models are just one part of a solution
● User experience benefits from iteration and feedback
● Need to integrate with other systems
● Want to track the effectiveness of a model/approach
● Running on via the web has tradeoffs between performance and ease
A typical solver workflow
Input dataGenerate
Output
Parse dataSolve model
Formulate
model
Optimization
Application
Application architecture
Browser, App, Client, Server, Cloud
Options
1. Local Software
Formulation of model and solver done on your own device
2. Client Side Formulation
Client app make the model sent to server for solve
Client side translates model solution to output
3. API
Data to server side - Server side formulation and solve - Data out from
server
a. Cloud solver c. Containerization/Virtualization
b. Microservices d. Serverless
4. Data Science Platform (Jupyter et al.)
5. Other?
Local Software
Need to figure out how to distribute to users
Have to support different OS’s
Rely on user to manage data
Local machine can get locked up due to compute load
Specialized installation requirements
User environments differ and can lead to issues
High barrier to entry, download, install, configure etc
Commercial license per machine can be expensive
Client side formulation
Similar issues to local but you remove the need for solver software for users
Now you have to manage a solver infrastructure
Develop code to serialize and then send plus return models
Have to handle and turn model solution into output locally
Commercial licenses can be expensive, but now shared across user base
Still relying on user to input data and setup environment
Have to pay for hosting of compute
API
All business logic on server side behind API.
Requires that you send the data to the server side.
Not always feasible, size of data and privacy
concerns.
Requires more devops capability and/or knowledge
Can quickly iterate versions, user base just keeps
using
Cost for machine hosting can be expensive plus
commercial licenses
Data Science Platform
Strong traction from user base
Many libraries easily installable in
addition to core platform
Use a “programming” like environment
to create solutions
Can be used to make nice visualizations
to communicate results
Local, hosted, server or colab
What is WebAssembly (WASM)?
Lets you be OS agnostic.
Run like native application but in the browser
Use the emscripten toolchain
Native --> LLVM --> WebAssembly
Deliver as static file.
Use as a module in JS
Ref: https://developer.mozilla.org/en-US/docs/WebAssembly/Concepts
Ref: https://emscripten.org/
source: https://research.mozilla.org/webassembly/
Approach
Learnings
● Find an open source solver and try get it to compile using emscripten
● Create a application to show the functionality
● Deploy it
Gotcha
● Documentation exists but it can have gaps which you fall through
● Assumptions that you have some experience in the language you want to
compile
● Error reporting can be cryptic
● Still new, multi threading not fully supported
Comparison
Easy usage and
maintainability
(High)
Deployability
(High)
API WASM
Local DS
Platform
Client Side
Formulation
Demo
https://tranquil-dusk-58927.herokuapp.com/
Next Steps
Expose the core library to JS
Formulate models in JS via the WASM compiled C++ API
Run benchmarking
Try to compile COIN or SCIP
Build a demo use case
Questions
More about WASM & Application architecture
https://www.gurobi.com/wp-content/uploads/2018/12/Webinar-Application-Architec
tures-Slides.pdf
https://www.gurobi.com/resource/gurobi-optimization-application-demos/
https://maxbittker.com/making-sandspiel
https://www.tu-braunschweig.de/Medien-DB/ias/pubs/2019-dimva.pdf
https://github.com/fhk/link_src https://github.com/iodide-project/pyodide
https://tinyurl.com/lpsolvewasm
http://miplib.zib.de/download.html

Weitere ähnliche Inhalte

Was ist angesagt?

(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection
(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection
(ATS6-DEV05) Building Interactive Web Applications with the Reporting CollectionBIOVIA
 
HackingEDU: Watson APIs Overview
HackingEDU: Watson APIs OverviewHackingEDU: Watson APIs Overview
HackingEDU: Watson APIs OverviewJake Peyser
 
Vertical Slices in .NET - Bojan Veljanovski, March 2016, MK.NET UG
Vertical Slices in .NET - Bojan Veljanovski, March 2016, MK.NET UGVertical Slices in .NET - Bojan Veljanovski, March 2016, MK.NET UG
Vertical Slices in .NET - Bojan Veljanovski, March 2016, MK.NET UGBojan Veljanovski
 
(ATS6-GS02) Integrating Contur and HEOS
(ATS6-GS02) Integrating Contur and HEOS(ATS6-GS02) Integrating Contur and HEOS
(ATS6-GS02) Integrating Contur and HEOSBIOVIA
 
Using Non-Spatial Dashboard to Update Spatial Features
Using Non-Spatial Dashboard to Update Spatial FeaturesUsing Non-Spatial Dashboard to Update Spatial Features
Using Non-Spatial Dashboard to Update Spatial FeaturesSafe Software
 
Real World – Rapid prototyping with Logic Apps
Real World – Rapid prototyping with Logic AppsReal World – Rapid prototyping with Logic Apps
Real World – Rapid prototyping with Logic AppsBizTalk360
 
ArcherGrey ENOVIA V6 Product Uploader rev 2 2016
ArcherGrey ENOVIA V6 Product Uploader rev 2 2016ArcherGrey ENOVIA V6 Product Uploader rev 2 2016
ArcherGrey ENOVIA V6 Product Uploader rev 2 2016Brion Carroll
 
Anypoint studio 5.4 with mule 3.7.3
Anypoint studio 5.4 with mule 3.7.3Anypoint studio 5.4 with mule 3.7.3
Anypoint studio 5.4 with mule 3.7.3D.Rajesh Kumar
 
New Xcede - the ultimate reporting tool for Reckon APS suite
New Xcede - the ultimate reporting tool for Reckon APS suiteNew Xcede - the ultimate reporting tool for Reckon APS suite
New Xcede - the ultimate reporting tool for Reckon APS suiteReckon
 
High Performance Computing in web application
High Performance Computing in web applicationHigh Performance Computing in web application
High Performance Computing in web applicationreza Habibi
 
Mule cloudhub application
Mule cloudhub applicationMule cloudhub application
Mule cloudhub applicationD.Rajesh Kumar
 
UND Distinguished Lecture
UND Distinguished LectureUND Distinguished Lecture
UND Distinguished LectureMichael DeMers
 
Solving The Deployment Problem
Solving The Deployment ProblemSolving The Deployment Problem
Solving The Deployment Problemhtyson
 

Was ist angesagt? (20)

(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection
(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection
(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection
 
Dssv1.0
Dssv1.0Dssv1.0
Dssv1.0
 
HackingEDU: Watson APIs Overview
HackingEDU: Watson APIs OverviewHackingEDU: Watson APIs Overview
HackingEDU: Watson APIs Overview
 
Vertical Slices in .NET - Bojan Veljanovski, March 2016, MK.NET UG
Vertical Slices in .NET - Bojan Veljanovski, March 2016, MK.NET UGVertical Slices in .NET - Bojan Veljanovski, March 2016, MK.NET UG
Vertical Slices in .NET - Bojan Veljanovski, March 2016, MK.NET UG
 
(ATS6-GS02) Integrating Contur and HEOS
(ATS6-GS02) Integrating Contur and HEOS(ATS6-GS02) Integrating Contur and HEOS
(ATS6-GS02) Integrating Contur and HEOS
 
Mulesoft cloudhub
Mulesoft cloudhubMulesoft cloudhub
Mulesoft cloudhub
 
Using Non-Spatial Dashboard to Update Spatial Features
Using Non-Spatial Dashboard to Update Spatial FeaturesUsing Non-Spatial Dashboard to Update Spatial Features
Using Non-Spatial Dashboard to Update Spatial Features
 
Brazil
BrazilBrazil
Brazil
 
A Short Presentation on Kafka
A Short Presentation on KafkaA Short Presentation on Kafka
A Short Presentation on Kafka
 
PowerApps
PowerAppsPowerApps
PowerApps
 
Html 5 Overview
Html 5 OverviewHtml 5 Overview
Html 5 Overview
 
Real World – Rapid prototyping with Logic Apps
Real World – Rapid prototyping with Logic AppsReal World – Rapid prototyping with Logic Apps
Real World – Rapid prototyping with Logic Apps
 
ArcherGrey ENOVIA V6 Product Uploader rev 2 2016
ArcherGrey ENOVIA V6 Product Uploader rev 2 2016ArcherGrey ENOVIA V6 Product Uploader rev 2 2016
ArcherGrey ENOVIA V6 Product Uploader rev 2 2016
 
Anypoint studio 5.4 with mule 3.7.3
Anypoint studio 5.4 with mule 3.7.3Anypoint studio 5.4 with mule 3.7.3
Anypoint studio 5.4 with mule 3.7.3
 
New Xcede - the ultimate reporting tool for Reckon APS suite
New Xcede - the ultimate reporting tool for Reckon APS suiteNew Xcede - the ultimate reporting tool for Reckon APS suite
New Xcede - the ultimate reporting tool for Reckon APS suite
 
High Performance Computing in web application
High Performance Computing in web applicationHigh Performance Computing in web application
High Performance Computing in web application
 
Mule cloudhub application
Mule cloudhub applicationMule cloudhub application
Mule cloudhub application
 
UND Distinguished Lecture
UND Distinguished LectureUND Distinguished Lecture
UND Distinguished Lecture
 
Solving The Deployment Problem
Solving The Deployment ProblemSolving The Deployment Problem
Solving The Deployment Problem
 
Beyond InfoPath
Beyond InfoPathBeyond InfoPath
Beyond InfoPath
 

Ähnlich wie Porting an Open Source Lp Solver to Web Assembly

Deployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsDeployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsIBM UrbanCode Products
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressGeorge Kanellopoulos
 
DevOps and Application Delivery for Hybrid Cloud - DevOpsSummit session
DevOps and Application Delivery for Hybrid Cloud  - DevOpsSummit sessionDevOps and Application Delivery for Hybrid Cloud  - DevOpsSummit session
DevOps and Application Delivery for Hybrid Cloud - DevOpsSummit sessionSanjeev Sharma
 
Developing apps with techstack wp-dm
Developing apps with techstack wp-dmDeveloping apps with techstack wp-dm
Developing apps with techstack wp-dmActian Corporation
 
Cloud Computing Basics I
Cloud Computing Basics ICloud Computing Basics I
Cloud Computing Basics IRightScale
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. Kushan Lahiru Perera
 
Webcast urbancodemobiltomainframe
Webcast urbancodemobiltomainframeWebcast urbancodemobiltomainframe
Webcast urbancodemobiltomainframeRosalind Radcliffe
 
VidyaBhooshanMishra_CV
VidyaBhooshanMishra_CVVidyaBhooshanMishra_CV
VidyaBhooshanMishra_CVLandis+Gyr
 
Azure Services Platform_Partner_Briefing
Azure Services Platform_Partner_BriefingAzure Services Platform_Partner_Briefing
Azure Services Platform_Partner_BriefingWes Yanaga
 
Cloud Deployment Toolkit
Cloud Deployment ToolkitCloud Deployment Toolkit
Cloud Deployment ToolkitBret Piatt
 
Ch 8 Client Server
Ch 8  Client  ServerCh 8  Client  Server
Ch 8 Client Serverguest8fdbdd
 
Leveraging The Cloud In 2009
Leveraging The Cloud In 2009Leveraging The Cloud In 2009
Leveraging The Cloud In 2009Ed Laczynski
 
Cloud computing and software engineering
Cloud computing and software engineeringCloud computing and software engineering
Cloud computing and software engineeringRavindra Dastikop
 
Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010DavidGristwood
 
The Fastest Way to Redis on Pivotal Cloud Foundry
The Fastest Way to Redis on Pivotal Cloud FoundryThe Fastest Way to Redis on Pivotal Cloud Foundry
The Fastest Way to Redis on Pivotal Cloud FoundryVMware Tanzu
 
Web Application Development using PHP and MySQL
Web Application Development using PHP and MySQLWeb Application Development using PHP and MySQL
Web Application Development using PHP and MySQLGanesh Kamath
 
Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]Sreeni Pamidala
 
engage 2015 - - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...
engage 2015 -  - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...engage 2015 -  - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...
engage 2015 - - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...Christoph Adler
 

Ähnlich wie Porting an Open Source Lp Solver to Web Assembly (20)

Deployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsDeployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy Wordress
 
DevOps and Application Delivery for Hybrid Cloud - DevOpsSummit session
DevOps and Application Delivery for Hybrid Cloud  - DevOpsSummit sessionDevOps and Application Delivery for Hybrid Cloud  - DevOpsSummit session
DevOps and Application Delivery for Hybrid Cloud - DevOpsSummit session
 
Developing apps with techstack wp-dm
Developing apps with techstack wp-dmDeveloping apps with techstack wp-dm
Developing apps with techstack wp-dm
 
Cloud Computing Basics I
Cloud Computing Basics ICloud Computing Basics I
Cloud Computing Basics I
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
 
Webcast urbancodemobiltomainframe
Webcast urbancodemobiltomainframeWebcast urbancodemobiltomainframe
Webcast urbancodemobiltomainframe
 
VidyaBhooshanMishra_CV
VidyaBhooshanMishra_CVVidyaBhooshanMishra_CV
VidyaBhooshanMishra_CV
 
Azure Services Platform_Partner_Briefing
Azure Services Platform_Partner_BriefingAzure Services Platform_Partner_Briefing
Azure Services Platform_Partner_Briefing
 
Cloud Deployment Toolkit
Cloud Deployment ToolkitCloud Deployment Toolkit
Cloud Deployment Toolkit
 
Ch 8 Client Server
Ch 8  Client  ServerCh 8  Client  Server
Ch 8 Client Server
 
Leveraging The Cloud In 2009
Leveraging The Cloud In 2009Leveraging The Cloud In 2009
Leveraging The Cloud In 2009
 
Cloud computing and software engineering
Cloud computing and software engineeringCloud computing and software engineering
Cloud computing and software engineering
 
Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010
 
The Fastest Way to Redis on Pivotal Cloud Foundry
The Fastest Way to Redis on Pivotal Cloud FoundryThe Fastest Way to Redis on Pivotal Cloud Foundry
The Fastest Way to Redis on Pivotal Cloud Foundry
 
Web Application Development using PHP and MySQL
Web Application Development using PHP and MySQLWeb Application Development using PHP and MySQL
Web Application Development using PHP and MySQL
 
L19 Application Architecture
L19 Application ArchitectureL19 Application Architecture
L19 Application Architecture
 
Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]
 
engage 2015 - - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...
engage 2015 -  - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...engage 2015 -  - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...
engage 2015 - - 2015 - Infrastructure Assessment - Analyze, Visualize and Op...
 
Open Source in the Enterprise
Open Source in the EnterpriseOpen Source in the Enterprise
Open Source in the Enterprise
 

Kürzlich hochgeladen

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsBert Jan Schrijver
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 

Kürzlich hochgeladen (20)

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 

Porting an Open Source Lp Solver to Web Assembly

  • 1. LP solver in the browser Fabion Kauker f.kauker@gmail.com Part of this research was conducted at 3-GIS
  • 2. The challenge ● Writing models requires a specific environment + language ● Once you have a model you want to make it data driven ● Many options between commercial and open source solvers ● Lots of choices for application architecture ● Many applications require client side data access ● Solvers and models are just one part of a solution ● User experience benefits from iteration and feedback ● Need to integrate with other systems ● Want to track the effectiveness of a model/approach ● Running on via the web has tradeoffs between performance and ease
  • 3. A typical solver workflow Input dataGenerate Output Parse dataSolve model Formulate model Optimization Application
  • 5. Options 1. Local Software Formulation of model and solver done on your own device 2. Client Side Formulation Client app make the model sent to server for solve Client side translates model solution to output 3. API Data to server side - Server side formulation and solve - Data out from server a. Cloud solver c. Containerization/Virtualization b. Microservices d. Serverless 4. Data Science Platform (Jupyter et al.) 5. Other?
  • 6. Local Software Need to figure out how to distribute to users Have to support different OS’s Rely on user to manage data Local machine can get locked up due to compute load Specialized installation requirements User environments differ and can lead to issues High barrier to entry, download, install, configure etc Commercial license per machine can be expensive
  • 7. Client side formulation Similar issues to local but you remove the need for solver software for users Now you have to manage a solver infrastructure Develop code to serialize and then send plus return models Have to handle and turn model solution into output locally Commercial licenses can be expensive, but now shared across user base Still relying on user to input data and setup environment Have to pay for hosting of compute
  • 8. API All business logic on server side behind API. Requires that you send the data to the server side. Not always feasible, size of data and privacy concerns. Requires more devops capability and/or knowledge Can quickly iterate versions, user base just keeps using Cost for machine hosting can be expensive plus commercial licenses
  • 9. Data Science Platform Strong traction from user base Many libraries easily installable in addition to core platform Use a “programming” like environment to create solutions Can be used to make nice visualizations to communicate results Local, hosted, server or colab
  • 10. What is WebAssembly (WASM)? Lets you be OS agnostic. Run like native application but in the browser Use the emscripten toolchain Native --> LLVM --> WebAssembly Deliver as static file. Use as a module in JS Ref: https://developer.mozilla.org/en-US/docs/WebAssembly/Concepts Ref: https://emscripten.org/
  • 12. Approach Learnings ● Find an open source solver and try get it to compile using emscripten ● Create a application to show the functionality ● Deploy it Gotcha ● Documentation exists but it can have gaps which you fall through ● Assumptions that you have some experience in the language you want to compile ● Error reporting can be cryptic ● Still new, multi threading not fully supported
  • 13. Comparison Easy usage and maintainability (High) Deployability (High) API WASM Local DS Platform Client Side Formulation
  • 15. Next Steps Expose the core library to JS Formulate models in JS via the WASM compiled C++ API Run benchmarking Try to compile COIN or SCIP Build a demo use case
  • 17. More about WASM & Application architecture https://www.gurobi.com/wp-content/uploads/2018/12/Webinar-Application-Architec tures-Slides.pdf https://www.gurobi.com/resource/gurobi-optimization-application-demos/ https://maxbittker.com/making-sandspiel https://www.tu-braunschweig.de/Medien-DB/ias/pubs/2019-dimva.pdf https://github.com/fhk/link_src https://github.com/iodide-project/pyodide https://tinyurl.com/lpsolvewasm http://miplib.zib.de/download.html