SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
Looking for Python
developers!
Speak to us at PyPy
demo night or visit
www.pitchup.com/jobs
Python / Django
Postgres
Celery
Redis
nginx
memcache
Jquery
Solr
S3
Leading booking site for campsites and caravan
parks, founded in 2009 by lastminute.com alumni
● 65k visits / day, £6m bookings / year
● 650 bookable sites
● Huge market
○ 26k campsites and 300m bednights in Europe
○ 600m bednights in US
○ 47% more bednights than hotels (GB)
○ More trips to campsites than holidays to France +
Spain combined (GB)
● Team of 15, based in west London
Welcome to the PyPy Demo Evening
Laurence Tratt
2013-08-27
1 / 5 http://soft-dev.org/
Why are we here?
2 / 5 http://soft-dev.org/
What do we do?
(l-r) Vasudevan, Bolz, Tratt, Barrett, Diekmann
3 / 5 http://soft-dev.org/
What do we do?
• Aim: identify important challenges in software
development.
3 / 5 http://soft-dev.org/
What do we do?
• Aim: identify important challenges in software
development.
• Strengths: language design and implementation.
3 / 5 http://soft-dev.org/
What do we do?
• Aim: identify important challenges in software
development.
• Strengths: language design and implementation.
• Immediate benefits: faster VMs.
3 / 5 http://soft-dev.org/
What do we do?
• Aim: identify important challenges in software
development.
• Strengths: language design and implementation.
• Immediate benefits: faster VMs.
• Long-term benefits: language composition.
3 / 5 http://soft-dev.org/
This evening
1 Carl Friedrich Bolz PyPy overview.
2 Lukas Diekmann Storage strategies.
3 Maciej Fijalkowski NumPy.
4 Armin Rigo Software Transactional Memory
(STM).
5 Edd Barrett Language composition using
meta-tracing.
4 / 5 http://soft-dev.org/
Can you help?
• Contributors.
5 / 5 http://soft-dev.org/
Can you help?
• Contributors.
• Resources.
• Software Freedom Conservancy
5 / 5 http://soft-dev.org/
A Very Brief Introduction to PyPy
Carl Friedrich Bolz
PyPy Demo Evening, King’s College London,
August 27, 2013
Carl Friedrich Bolz A Very Brief Introduction to PyPy
CPython is slow
CPython 1-3 orders of magnitude slower than C
BinaryTrees
Dhrystone
FannkuchRedux
Fasta
Knucleotide
Mandelbrot
Nbody
RegexDNA
RevComp
Richards
SpectralNorm
0.1
1
10
100
1000
SlowerthanC,lowerisbetter
C
Java
Cpython
Carl Friedrich Bolz A Very Brief Introduction to PyPy
Reasons for Bad Performance
interpretation overhead
late binding
dispatching
boxing
Carl Friedrich Bolz A Very Brief Introduction to PyPy
Enter PyPy
a modern efficient implementation of Python
Carl Friedrich Bolz A Very Brief Introduction to PyPy
Enter PyPy
a modern efficient implementation of Python
open source, MIT license
written in Python itself, then bootstrapped to C
uses a tracing JIT compiler to produce machine code at
runtime
Carl Friedrich Bolz A Very Brief Introduction to PyPy
Performance of PyPy
significantly faster than CPython, typically in the same order of
magnitude than C
BinaryTrees
Dhrystone
FannkuchRedux
Fasta
Knucleotide
Mandelbrot
Nbody
RegexDNA
RevComp
Richards
SpectralNorm
0.1
1
10
100
1000
SlowerthanC,lowerisbetter
C
Java
PyPy
CPython
Carl Friedrich Bolz A Very Brief Introduction to PyPy
Performance of PyPy
significantly faster than CPython, typically in the same order of
magnitude than C
BinaryTrees
Dhrystone
FannkuchRedux
Fasta
Knucleotide
Mandelbrot
Nbody
RegexDNA
RevComp
Richards
SpectralNorm
0.1
1
10
100
1000
SlowerthanC,lowerisbetter
C
Java
PyPy
CPython
on average about 6.3 faster than CPython
Carl Friedrich Bolz A Very Brief Introduction to PyPy
Demo
Carl Friedrich Bolz A Very Brief Introduction to PyPy
Architecture
Python interpreter written in RPython
JIT-compiler automatically added via meta-tracing
Carl Friedrich Bolz A Very Brief Introduction to PyPy
Status
Python 2.7.3 support, 2.7.4 coming soon
beta-level support for Python 3.2, more coming eventually
pure Python code fully supported, please report as bug if
not
Carl Friedrich Bolz A Very Brief Introduction to PyPy
Status
Python 2.7.3 support, 2.7.4 coming soon
beta-level support for Python 3.2, more coming eventually
pure Python code fully supported, please report as bug if
not
C extension modules partially supported, if they are
well-behaved
they are slow
use cffi (a ctypes replacement) instead
Carl Friedrich Bolz A Very Brief Introduction to PyPy
Questions?
PyPy is a fast JITted Python implementation
(if something is not fast, please report it as a bug)
open source under MIT license
http://pypy.org
Carl Friedrich Bolz A Very Brief Introduction to PyPy
Storage Strategies for Fast Containers
Lukas Diekmann
August, 27 2013
1 / 6 http://soft-dev.org/
Collection strategies
introduced in PyPy 1.9
optimisation of collections for certain data types
improving speed
reducing memory
2 / 6 http://soft-dev.org/
Idea
typical programs have homogeneously types collections
create optimised versions of collections for certain types
so far:
lists: ints, floats, strings/unicode
sets: ints, floats, strings/unicode
dicts: ints, strings/unicode
3 / 6 http://soft-dev.org/
Optimisations
collections automatically change to most efficient strategy
store elements more memory efficiently
fast elements access
4 / 6 http://soft-dev.org/
Further optimisations
collection creation and initalisation
split(d), set([1,2,3])
type based operations:
contains, difference, issubset
special strategies
RangeListStrategy: calculates elements on the fly
Tracing JIT interaction:
faster (low-level) comparisons, remove type checks
5 / 6 http://soft-dev.org/
Results
paper at OOPSLA
on average ∼18% speedup
∼6% less memory usage
more info at http://soft-dev.org/pubs/
6 / 6 http://soft-dev.org/
Numpy on PyPy
Maciej Fijałkowski
King’s College London
August 27 2013
fijal Numpy on PyPy
Goals
fully compliant numpy replacement for PyPy
fast looped operations
fast vectorized operations
fijal Numpy on PyPy
Why?
fast looping
single language
fijal Numpy on PyPy
Model
some programs have numerical kernels that can
be written in C
some don’t
http://arxiv.org/abs/1301.1334
image manipulation demo
abstraction unfriendly
fijal Numpy on PyPy
Status
fast looped operations
ok vectorized operations
fijal Numpy on PyPy
Future goals
finish numpy
make it fast
make it compatible with more software
(matplotlib, scipy)
fijal Numpy on PyPy
Funding
about $20k left
we likely need more
behind schedule, but not behind budget
fijal Numpy on PyPy
Q&A
Thank you!
fijal Numpy on PyPy
Software Transactional Memory on PyPy
Pseudo-Goal
“Kill the GIL”
GIL = Global Interpreter Lock
Real Goals
Multi-core programming
But reasonable multi-core programming
Using the recent model of Transactional Memory
PyPy-STM
An executable pypy-stm which uses internally Software
Transactional Memory
Optimistically run multiple threads in parallel
The only new feature is atomic:
with atomic:
piece of code...
Example of higher-level API
def work(...):
...
several more calls to:
transaction.add(work, ...)
...
Starts N threads, scheduling work() calls to them
Each work() is done in an atomic block
Multi-core, but as if all the work() are done sequentially
Status
Kind of working without the JIT
Roughly three times slower (you need four cores to see benefits)
Working on the JIT support
Q&A
Thank you!
Budget of $10k left, likely more needed too
Unipycation
Combining Prolog and Python
Edd Barrett
August 27, 2013
1 / 9 http://soft-dev.org/
Our Goal
The softdev team is exploring language compositions.
Ideally our compositions should be:
Easy to implement.
Transparent (as possible) to the user-programmer.
High performance.
Can meta-tracing help?
2 / 9 http://soft-dev.org/
Unipycation: A Language Composition Experiment
PyPy + Pyrolog = Unipycation
Unipycation
Both interpreters implemented in RPython.
About 600 LoC of integration code.
A few months to develop.
Languages communicate via an API.
No syntax integration yet.
3 / 9 http://soft-dev.org/
Why?
Explore composition of opposing paradigms.
Evaluate RPython as a language composition framework.
Performance/ease of development.
Composition with many realistic applications.
Example Scenario
Data acquisition by JSON/XML/Sqlite.
Easy in Python, not easy in Prolog.
Some kind of knowledge inference based upon data.
Perhaps not so easy in Python, trivial in Prolog.
Visualisation of Results.
Easy in Python, lack of library support in Prolog.
4 / 9 http://soft-dev.org/
Example
Suppose we have a directed graph (London Underground?):
a c
b
d
e
d
g
And we need to ask questions like:
Where can I get to from ’b’ via at most 4 nodes and how?
5 / 9 http://soft-dev.org/
This is Easy with Prolog
path.pl:
edge(a, c). edge(c, b). edge(c, d). edge(d, e).
edge(b, e). edge(c, f). edge(f, g). edge(e, g).
edge(g, b).
path(From , To , MaxLen , Nodes) :-
path(From , To , MaxLen , Nodes , 1).
path(Node , Node , _, [Node], _).
path(From , To , MaxLen , [From | Ahead ], Len) :-
Len < MaxLen , edge(From , Next),
Len1 is Len + 1,
path(Next , To , MaxLen , Ahead , Len1).
query: path(b, To, 4, Path).
6 / 9 http://soft-dev.org/
Example: Python → Prolog
from uni import Engine
engine = Engine.from_file (" path.pl")
paths = engine.db.path.iter
for (to , nodes) in paths ("b", None , 4, None):
print ("To %s via %s" % (to , nodes))
To b via [’b’]
To e via [’b’, ’e’]
To g via [’b’, ’e’, ’g’]
To b via [’b’, ’e’, ’g’, ’b’]
Calling from Prolog to Python also possible. E.g.
python:somefunc(blah)
7 / 9 http://soft-dev.org/
Performance
8 / 9 http://soft-dev.org/
In Summary
Compositions are relatively easy to implement with RPython.
We were able to implement a fairly transparent API-like interface.
Performance promising.
Further Reading
https://bitbucket.org/vext01/pypy
http://soft-dev.org/
9 / 9 http://soft-dev.org/

Contenu connexe

Tendances

Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.Carlos Miguel Ferreira
 
Using SWIG to Control, Prototype, and Debug C Programs with Python
Using SWIG to Control, Prototype, and Debug C Programs with PythonUsing SWIG to Control, Prototype, and Debug C Programs with Python
Using SWIG to Control, Prototype, and Debug C Programs with PythonDavid Beazley (Dabeaz LLC)
 
Python Developer Certification
Python Developer CertificationPython Developer Certification
Python Developer CertificationVskills
 
Programming with Python - Basic
Programming with Python - BasicProgramming with Python - Basic
Programming with Python - BasicMosky Liu
 
平行化你的工作 part1
平行化你的工作 part1平行化你的工作 part1
平行化你的工作 part1Shuen-Huei Guan
 
SWIG Hello World
SWIG Hello WorldSWIG Hello World
SWIG Hello Worlde8xu
 
Pythonic doesn't mean slow!
Pythonic doesn't mean slow!Pythonic doesn't mean slow!
Pythonic doesn't mean slow!Ronan Lamy
 
Introduction to Python
Introduction to PythonIntroduction to Python
Introduction to PythonBogdan Sabău
 
Python and Machine Learning
Python and Machine LearningPython and Machine Learning
Python and Machine Learningtrygub
 
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...Holden Karau
 
First python project
First python projectFirst python project
First python projectNeetu Jain
 
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...David Beazley (Dabeaz LLC)
 
CHEP 2018: A Python upgrade to the GooFit package for parallel fitting
CHEP 2018: A Python upgrade to the GooFit package for parallel fittingCHEP 2018: A Python upgrade to the GooFit package for parallel fitting
CHEP 2018: A Python upgrade to the GooFit package for parallel fittingHenry Schreiner
 
Numba: Array-oriented Python Compiler for NumPy
Numba: Array-oriented Python Compiler for NumPyNumba: Array-oriented Python Compiler for NumPy
Numba: Array-oriented Python Compiler for NumPyTravis Oliphant
 
Python, the Language of Science and Engineering for Engineers
Python, the Language of Science and Engineering for EngineersPython, the Language of Science and Engineering for Engineers
Python, the Language of Science and Engineering for EngineersBoey Pak Cheong
 

Tendances (20)

Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.
 
Using SWIG to Control, Prototype, and Debug C Programs with Python
Using SWIG to Control, Prototype, and Debug C Programs with PythonUsing SWIG to Control, Prototype, and Debug C Programs with Python
Using SWIG to Control, Prototype, and Debug C Programs with Python
 
Interfacing C/C++ and Python with SWIG
Interfacing C/C++ and Python with SWIGInterfacing C/C++ and Python with SWIG
Interfacing C/C++ and Python with SWIG
 
Python Developer Certification
Python Developer CertificationPython Developer Certification
Python Developer Certification
 
Python Workshop
Python WorkshopPython Workshop
Python Workshop
 
Programming with Python - Basic
Programming with Python - BasicProgramming with Python - Basic
Programming with Python - Basic
 
平行化你的工作 part1
平行化你的工作 part1平行化你的工作 part1
平行化你的工作 part1
 
SWIG Hello World
SWIG Hello WorldSWIG Hello World
SWIG Hello World
 
Pythonic doesn't mean slow!
Pythonic doesn't mean slow!Pythonic doesn't mean slow!
Pythonic doesn't mean slow!
 
Introduction to Python
Introduction to PythonIntroduction to Python
Introduction to Python
 
Easy native wrappers with SWIG
Easy native wrappers with SWIGEasy native wrappers with SWIG
Easy native wrappers with SWIG
 
Python and Machine Learning
Python and Machine LearningPython and Machine Learning
Python and Machine Learning
 
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...Powering tensorflow with big data (apache spark, flink, and beam)   dataworks...
Powering tensorflow with big data (apache spark, flink, and beam) dataworks...
 
First python project
First python projectFirst python project
First python project
 
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...
 
CHEP 2018: A Python upgrade to the GooFit package for parallel fitting
CHEP 2018: A Python upgrade to the GooFit package for parallel fittingCHEP 2018: A Python upgrade to the GooFit package for parallel fitting
CHEP 2018: A Python upgrade to the GooFit package for parallel fitting
 
Numba lightning
Numba lightningNumba lightning
Numba lightning
 
Numba: Array-oriented Python Compiler for NumPy
Numba: Array-oriented Python Compiler for NumPyNumba: Array-oriented Python Compiler for NumPy
Numba: Array-oriented Python Compiler for NumPy
 
Python, the Language of Science and Engineering for Engineers
Python, the Language of Science and Engineering for EngineersPython, the Language of Science and Engineering for Engineers
Python, the Language of Science and Engineering for Engineers
 
A Python Tutorial
A Python TutorialA Python Tutorial
A Python Tutorial
 

Similaire à Python jobs booking site campsites parks

PyCon2022 - Building Python Extensions
PyCon2022 - Building Python ExtensionsPyCon2022 - Building Python Extensions
PyCon2022 - Building Python ExtensionsHenry Schreiner
 
Euro python2011 High Performance Python
Euro python2011 High Performance PythonEuro python2011 High Performance Python
Euro python2011 High Performance PythonIan Ozsvald
 
Python_final_print_batch_II_vision_academy.pdf
Python_final_print_batch_II_vision_academy.pdfPython_final_print_batch_II_vision_academy.pdf
Python_final_print_batch_II_vision_academy.pdfbhagyashri686896
 
Python_final_print_batch_II_vision_academy (1).pdf
Python_final_print_batch_II_vision_academy (1).pdfPython_final_print_batch_II_vision_academy (1).pdf
Python_final_print_batch_II_vision_academy (1).pdfrupaliakhute
 
Python_final_print_batch_II_vision_academy.pdf
Python_final_print_batch_II_vision_academy.pdfPython_final_print_batch_II_vision_academy.pdf
Python_final_print_batch_II_vision_academy.pdfsannykhopade
 
Python_vision_academy notes
Python_vision_academy notes Python_vision_academy notes
Python_vision_academy notes rajaniraut
 
Concurrency and Python - PyCon MY 2015
Concurrency and Python - PyCon MY 2015Concurrency and Python - PyCon MY 2015
Concurrency and Python - PyCon MY 2015Boey Pak Cheong
 
Open Source .NET
Open Source .NETOpen Source .NET
Open Source .NETOnyxfish
 
Development_C_Extension_with_Pybind11.pdf
Development_C_Extension_with_Pybind11.pdfDevelopment_C_Extension_with_Pybind11.pdf
Development_C_Extension_with_Pybind11.pdfTakayuki Suzuki
 
The genesis of clusterlib - An open source library to tame your favourite sup...
The genesis of clusterlib - An open source library to tame your favourite sup...The genesis of clusterlib - An open source library to tame your favourite sup...
The genesis of clusterlib - An open source library to tame your favourite sup...Arnaud Joly
 
Python_final_print_vison_academy_9822506209.pdf
Python_final_print_vison_academy_9822506209.pdfPython_final_print_vison_academy_9822506209.pdf
Python_final_print_vison_academy_9822506209.pdfVisionAcademyProfSac
 
Python and Pytorch tutorial and walkthrough
Python and Pytorch tutorial and walkthroughPython and Pytorch tutorial and walkthrough
Python and Pytorch tutorial and walkthroughgabriellekuruvilla
 
Writing Fast Code - PyCon HK 2015
Writing Fast Code - PyCon HK 2015Writing Fast Code - PyCon HK 2015
Writing Fast Code - PyCon HK 2015Younggun Kim
 
[GSoC 2017] gopy: Updating gopy to support Python3 and PyPy
[GSoC 2017] gopy: Updating gopy to support Python3 and PyPy[GSoC 2017] gopy: Updating gopy to support Python3 and PyPy
[GSoC 2017] gopy: Updating gopy to support Python3 and PyPyDong-hee Na
 
Performance Enhancement Tips
Performance Enhancement TipsPerformance Enhancement Tips
Performance Enhancement TipsTim (文昌)
 

Similaire à Python jobs booking site campsites parks (20)

PyCon2022 - Building Python Extensions
PyCon2022 - Building Python ExtensionsPyCon2022 - Building Python Extensions
PyCon2022 - Building Python Extensions
 
Euro python2011 High Performance Python
Euro python2011 High Performance PythonEuro python2011 High Performance Python
Euro python2011 High Performance Python
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
Python_final_print_batch_II_vision_academy.pdf
Python_final_print_batch_II_vision_academy.pdfPython_final_print_batch_II_vision_academy.pdf
Python_final_print_batch_II_vision_academy.pdf
 
Python_final_print_batch_II_vision_academy (1).pdf
Python_final_print_batch_II_vision_academy (1).pdfPython_final_print_batch_II_vision_academy (1).pdf
Python_final_print_batch_II_vision_academy (1).pdf
 
Python_final_print_batch_II_vision_academy.pdf
Python_final_print_batch_II_vision_academy.pdfPython_final_print_batch_II_vision_academy.pdf
Python_final_print_batch_II_vision_academy.pdf
 
Python_vision_academy notes
Python_vision_academy notes Python_vision_academy notes
Python_vision_academy notes
 
Hello World! with Python
Hello World! with PythonHello World! with Python
Hello World! with Python
 
Concurrency and Python - PyCon MY 2015
Concurrency and Python - PyCon MY 2015Concurrency and Python - PyCon MY 2015
Concurrency and Python - PyCon MY 2015
 
Open Source .NET
Open Source .NETOpen Source .NET
Open Source .NET
 
Python
PythonPython
Python
 
Development_C_Extension_with_Pybind11.pdf
Development_C_Extension_with_Pybind11.pdfDevelopment_C_Extension_with_Pybind11.pdf
Development_C_Extension_with_Pybind11.pdf
 
The genesis of clusterlib - An open source library to tame your favourite sup...
The genesis of clusterlib - An open source library to tame your favourite sup...The genesis of clusterlib - An open source library to tame your favourite sup...
The genesis of clusterlib - An open source library to tame your favourite sup...
 
Python_final_print_vison_academy_9822506209.pdf
Python_final_print_vison_academy_9822506209.pdfPython_final_print_vison_academy_9822506209.pdf
Python_final_print_vison_academy_9822506209.pdf
 
Python and Pytorch tutorial and walkthrough
Python and Pytorch tutorial and walkthroughPython and Pytorch tutorial and walkthrough
Python and Pytorch tutorial and walkthrough
 
05 python.pdf
05 python.pdf05 python.pdf
05 python.pdf
 
Writing Fast Code - PyCon HK 2015
Writing Fast Code - PyCon HK 2015Writing Fast Code - PyCon HK 2015
Writing Fast Code - PyCon HK 2015
 
[GSoC 2017] gopy: Updating gopy to support Python3 and PyPy
[GSoC 2017] gopy: Updating gopy to support Python3 and PyPy[GSoC 2017] gopy: Updating gopy to support Python3 and PyPy
[GSoC 2017] gopy: Updating gopy to support Python3 and PyPy
 
Why learn python in 2017?
Why learn python in 2017?Why learn python in 2017?
Why learn python in 2017?
 
Performance Enhancement Tips
Performance Enhancement TipsPerformance Enhancement Tips
Performance Enhancement Tips
 

Dernier

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Dernier (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

Python jobs booking site campsites parks

  • 1. Looking for Python developers! Speak to us at PyPy demo night or visit www.pitchup.com/jobs Python / Django Postgres Celery Redis nginx memcache Jquery Solr S3 Leading booking site for campsites and caravan parks, founded in 2009 by lastminute.com alumni ● 65k visits / day, £6m bookings / year ● 650 bookable sites ● Huge market ○ 26k campsites and 300m bednights in Europe ○ 600m bednights in US ○ 47% more bednights than hotels (GB) ○ More trips to campsites than holidays to France + Spain combined (GB) ● Team of 15, based in west London
  • 2. Welcome to the PyPy Demo Evening Laurence Tratt 2013-08-27 1 / 5 http://soft-dev.org/
  • 3. Why are we here? 2 / 5 http://soft-dev.org/
  • 4. What do we do? (l-r) Vasudevan, Bolz, Tratt, Barrett, Diekmann 3 / 5 http://soft-dev.org/
  • 5. What do we do? • Aim: identify important challenges in software development. 3 / 5 http://soft-dev.org/
  • 6. What do we do? • Aim: identify important challenges in software development. • Strengths: language design and implementation. 3 / 5 http://soft-dev.org/
  • 7. What do we do? • Aim: identify important challenges in software development. • Strengths: language design and implementation. • Immediate benefits: faster VMs. 3 / 5 http://soft-dev.org/
  • 8. What do we do? • Aim: identify important challenges in software development. • Strengths: language design and implementation. • Immediate benefits: faster VMs. • Long-term benefits: language composition. 3 / 5 http://soft-dev.org/
  • 9. This evening 1 Carl Friedrich Bolz PyPy overview. 2 Lukas Diekmann Storage strategies. 3 Maciej Fijalkowski NumPy. 4 Armin Rigo Software Transactional Memory (STM). 5 Edd Barrett Language composition using meta-tracing. 4 / 5 http://soft-dev.org/
  • 10. Can you help? • Contributors. 5 / 5 http://soft-dev.org/
  • 11. Can you help? • Contributors. • Resources. • Software Freedom Conservancy 5 / 5 http://soft-dev.org/
  • 12. A Very Brief Introduction to PyPy Carl Friedrich Bolz PyPy Demo Evening, King’s College London, August 27, 2013 Carl Friedrich Bolz A Very Brief Introduction to PyPy
  • 13. CPython is slow CPython 1-3 orders of magnitude slower than C BinaryTrees Dhrystone FannkuchRedux Fasta Knucleotide Mandelbrot Nbody RegexDNA RevComp Richards SpectralNorm 0.1 1 10 100 1000 SlowerthanC,lowerisbetter C Java Cpython Carl Friedrich Bolz A Very Brief Introduction to PyPy
  • 14. Reasons for Bad Performance interpretation overhead late binding dispatching boxing Carl Friedrich Bolz A Very Brief Introduction to PyPy
  • 15. Enter PyPy a modern efficient implementation of Python Carl Friedrich Bolz A Very Brief Introduction to PyPy
  • 16. Enter PyPy a modern efficient implementation of Python open source, MIT license written in Python itself, then bootstrapped to C uses a tracing JIT compiler to produce machine code at runtime Carl Friedrich Bolz A Very Brief Introduction to PyPy
  • 17. Performance of PyPy significantly faster than CPython, typically in the same order of magnitude than C BinaryTrees Dhrystone FannkuchRedux Fasta Knucleotide Mandelbrot Nbody RegexDNA RevComp Richards SpectralNorm 0.1 1 10 100 1000 SlowerthanC,lowerisbetter C Java PyPy CPython Carl Friedrich Bolz A Very Brief Introduction to PyPy
  • 18. Performance of PyPy significantly faster than CPython, typically in the same order of magnitude than C BinaryTrees Dhrystone FannkuchRedux Fasta Knucleotide Mandelbrot Nbody RegexDNA RevComp Richards SpectralNorm 0.1 1 10 100 1000 SlowerthanC,lowerisbetter C Java PyPy CPython on average about 6.3 faster than CPython Carl Friedrich Bolz A Very Brief Introduction to PyPy
  • 19. Demo Carl Friedrich Bolz A Very Brief Introduction to PyPy
  • 20. Architecture Python interpreter written in RPython JIT-compiler automatically added via meta-tracing Carl Friedrich Bolz A Very Brief Introduction to PyPy
  • 21. Status Python 2.7.3 support, 2.7.4 coming soon beta-level support for Python 3.2, more coming eventually pure Python code fully supported, please report as bug if not Carl Friedrich Bolz A Very Brief Introduction to PyPy
  • 22. Status Python 2.7.3 support, 2.7.4 coming soon beta-level support for Python 3.2, more coming eventually pure Python code fully supported, please report as bug if not C extension modules partially supported, if they are well-behaved they are slow use cffi (a ctypes replacement) instead Carl Friedrich Bolz A Very Brief Introduction to PyPy
  • 23. Questions? PyPy is a fast JITted Python implementation (if something is not fast, please report it as a bug) open source under MIT license http://pypy.org Carl Friedrich Bolz A Very Brief Introduction to PyPy
  • 24. Storage Strategies for Fast Containers Lukas Diekmann August, 27 2013 1 / 6 http://soft-dev.org/
  • 25. Collection strategies introduced in PyPy 1.9 optimisation of collections for certain data types improving speed reducing memory 2 / 6 http://soft-dev.org/
  • 26. Idea typical programs have homogeneously types collections create optimised versions of collections for certain types so far: lists: ints, floats, strings/unicode sets: ints, floats, strings/unicode dicts: ints, strings/unicode 3 / 6 http://soft-dev.org/
  • 27. Optimisations collections automatically change to most efficient strategy store elements more memory efficiently fast elements access 4 / 6 http://soft-dev.org/
  • 28. Further optimisations collection creation and initalisation split(d), set([1,2,3]) type based operations: contains, difference, issubset special strategies RangeListStrategy: calculates elements on the fly Tracing JIT interaction: faster (low-level) comparisons, remove type checks 5 / 6 http://soft-dev.org/
  • 29. Results paper at OOPSLA on average ∼18% speedup ∼6% less memory usage more info at http://soft-dev.org/pubs/ 6 / 6 http://soft-dev.org/
  • 30. Numpy on PyPy Maciej Fijałkowski King’s College London August 27 2013 fijal Numpy on PyPy
  • 31. Goals fully compliant numpy replacement for PyPy fast looped operations fast vectorized operations fijal Numpy on PyPy
  • 33. Model some programs have numerical kernels that can be written in C some don’t http://arxiv.org/abs/1301.1334 image manipulation demo abstraction unfriendly fijal Numpy on PyPy
  • 34. Status fast looped operations ok vectorized operations fijal Numpy on PyPy
  • 35. Future goals finish numpy make it fast make it compatible with more software (matplotlib, scipy) fijal Numpy on PyPy
  • 36. Funding about $20k left we likely need more behind schedule, but not behind budget fijal Numpy on PyPy
  • 39. Pseudo-Goal “Kill the GIL” GIL = Global Interpreter Lock
  • 40. Real Goals Multi-core programming But reasonable multi-core programming Using the recent model of Transactional Memory
  • 41. PyPy-STM An executable pypy-stm which uses internally Software Transactional Memory Optimistically run multiple threads in parallel The only new feature is atomic: with atomic: piece of code...
  • 42. Example of higher-level API def work(...): ... several more calls to: transaction.add(work, ...) ... Starts N threads, scheduling work() calls to them Each work() is done in an atomic block Multi-core, but as if all the work() are done sequentially
  • 43. Status Kind of working without the JIT Roughly three times slower (you need four cores to see benefits) Working on the JIT support
  • 44. Q&A Thank you! Budget of $10k left, likely more needed too
  • 45. Unipycation Combining Prolog and Python Edd Barrett August 27, 2013 1 / 9 http://soft-dev.org/
  • 46. Our Goal The softdev team is exploring language compositions. Ideally our compositions should be: Easy to implement. Transparent (as possible) to the user-programmer. High performance. Can meta-tracing help? 2 / 9 http://soft-dev.org/
  • 47. Unipycation: A Language Composition Experiment PyPy + Pyrolog = Unipycation Unipycation Both interpreters implemented in RPython. About 600 LoC of integration code. A few months to develop. Languages communicate via an API. No syntax integration yet. 3 / 9 http://soft-dev.org/
  • 48. Why? Explore composition of opposing paradigms. Evaluate RPython as a language composition framework. Performance/ease of development. Composition with many realistic applications. Example Scenario Data acquisition by JSON/XML/Sqlite. Easy in Python, not easy in Prolog. Some kind of knowledge inference based upon data. Perhaps not so easy in Python, trivial in Prolog. Visualisation of Results. Easy in Python, lack of library support in Prolog. 4 / 9 http://soft-dev.org/
  • 49. Example Suppose we have a directed graph (London Underground?): a c b d e d g And we need to ask questions like: Where can I get to from ’b’ via at most 4 nodes and how? 5 / 9 http://soft-dev.org/
  • 50. This is Easy with Prolog path.pl: edge(a, c). edge(c, b). edge(c, d). edge(d, e). edge(b, e). edge(c, f). edge(f, g). edge(e, g). edge(g, b). path(From , To , MaxLen , Nodes) :- path(From , To , MaxLen , Nodes , 1). path(Node , Node , _, [Node], _). path(From , To , MaxLen , [From | Ahead ], Len) :- Len < MaxLen , edge(From , Next), Len1 is Len + 1, path(Next , To , MaxLen , Ahead , Len1). query: path(b, To, 4, Path). 6 / 9 http://soft-dev.org/
  • 51. Example: Python → Prolog from uni import Engine engine = Engine.from_file (" path.pl") paths = engine.db.path.iter for (to , nodes) in paths ("b", None , 4, None): print ("To %s via %s" % (to , nodes)) To b via [’b’] To e via [’b’, ’e’] To g via [’b’, ’e’, ’g’] To b via [’b’, ’e’, ’g’, ’b’] Calling from Prolog to Python also possible. E.g. python:somefunc(blah) 7 / 9 http://soft-dev.org/
  • 52. Performance 8 / 9 http://soft-dev.org/
  • 53. In Summary Compositions are relatively easy to implement with RPython. We were able to implement a fairly transparent API-like interface. Performance promising. Further Reading https://bitbucket.org/vext01/pypy http://soft-dev.org/ 9 / 9 http://soft-dev.org/
  • 54. Looking for Python developers! Speak to us at PyPy demo night or visit www.pitchup.com/jobs Python / Django Postgres Celery Redis nginx memcache Jquery Solr S3 Leading booking site for campsites and caravan parks, founded in 2009 by lastminute.com alumni ● 65k visits / day, £6m bookings / year ● 650 bookable sites ● Huge market ○ 26k campsites and 300m bednights in Europe ○ 600m bednights in US ○ 47% more bednights than hotels (GB) ○ More trips to campsites than holidays to France + Spain combined (GB) ● Team of 15, based in west London