Bestand wählen
Merken

Scientific computing using Cython: Best of both Worlds!

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
and to today's last day so the talk it I think this is Annapolis your right presentation little right know you so in this talk is about thinking that computing using say come so I'm go around the some basic overview were taken as how we use it as a housing needs
specifically use it in the sanctity of work so I am singing
warrior I work cannot forgive help so it's a sort of again so the weight on lake reporting so basically we work on a lake the cancer detection and brain liver and so the idea is to connect the turning the love appearing so you can actually get all the mattresses and natural breaking from the browser so did you find you need from OK and be just into the mind at amount of not out of the so what this talk is about
the soul will just go through step-by-step what is safe from how they will unleash the site counterparts the past and will strive to build our for 2nd model and a busy house site on how 2nd provides like support for num pi and will unleash more so the bars and there's a project demo at the NC-value feet so I went on this project last summer of for potency can was the I actually wrote a wrapper for a real feet it's a library for computer vision so it has like although major visionary bottoms late of SIFT and yet the media and yet similar to that so OK so what is sigh farm they it's and it's actually a static compiler for bold Python programming language and extended extended 2nd programming language so it makes writing C extension for python as easy as pie phone itself
and so we unleash the superpowers now so again the
force of the body is you can uh the by the venue you sites on your Python brought forward will actually be able to relate called CC that this back
and forth it stocks to which Lake natively on you can easily tune light
of Python poured into late you can optimize the performance by adding static type declarations let's see how we do that yeah so this is of
pure Python pulled it out as a simple
integration function so yeah it's pretty easy to so now you have
to spot the differences here so what do we have added we have added of type 2 I S and the X so we have to be declared the types and we have done that by using C death and not simply death so see is basically use Baron actually tree of late of the shows similar you know so there is a death is a CDF and there's a CV death so I'll explain it to them and explain them later list look at just see that so in a nutshell CDF is basically when you're dealing with the stuff and there is no you don't have to be the Python objects so yeah then that's when you see that and that's it and you'll be able to actually of time this is the actual performance of a surviving time when you see them so you have declared a no so you have to find the value of Y S andX and how does it help so so whenever there is a link performance-critical code you have to late you have lots of loops and lots of computation so you add static tight decorations that it actually allows us to say that actually is sites on just bypasses the those Python API calls and it just runs everything in C so the would that site and generates now it's more of a you know more optimize and has had a performance so typically how siphoned works is it's basically you write everything in Python you write everything and don't you I find on you right it and that we late X so you ask you again just copy-paste of your Python according to a site on fire that you make the but that is that my x and it would run so this long-delayed give you a link really good speed up but you can do that I think it's uh but like if you want more optimization you can actually include types just as we did here so just copying this particular of this particular you could end up to be my X gives a like 25 % improve speed improvement so and yeah by adding some static types that actually speed is late of 4 times of and as compared to the for Python so yeah I talked about death see that and NCP death let's look at them in detail our death is basically yeah it's by phone so it what it is quantity from Python and it takes Python objects arguments and it returns a Python objects so there is no you don't have to be that see anywhere so yeah and see that's that's yeah it's basically see so where sigh compunctions late you intend to be late your as C functions you want actual see performance you UUC death but you have to very careful you cannot only at that then you you are using the death you should link that particular patch should not be any Python object so that you might run into a problem if you do that so the generated code of late so when you are compile got the right that siphoned file it generates adoxae and then it and you can come in and they can get wouldn't but this school which is a shared object so in Lenox you you and then you can directly import that is so and those by position by doing an import some people really come to that too so see death it's basically bold death and the death so so that there's a trick here at actually the recognizes both by phone and see good so then there is the thought of it a you know that it's the recognizer great seafood we get it it can actually who some binding and then during a Python objects you so it uses dynamic binding and get them and it's low so it's like by phone then to so 0 yeah it can
directly import CC discussed libraries are using seem fault so you can just to see import of lip see something you can you can take import and we'll have visualizing an example later so that you can actually integrate with existing CC this quote of so you have say you have a library in C and you want to use it later you want to create a Python interface for that library you can do that by using safe on how we look to look into that to understand you know the shingles parts so yes OK so
rhizomatic lake trout site and do what's so special about so the main feature insights on is the relate the optional static by declarations you don't have to declare them every times again they're optional sold the source code get skin what into lake optimize CC that this code and this allows make very fast programme execution but you know parameters productivity since you're using a pipe like syntax so what's the motivation behind using safe on so this is a
really good diagram I borrowed from advanced item summer school it happened in 2012 uh so so there is ease of use and y axes and there's a speed on axis so speed uh assuming is using the law land lower-level languages like like you know for tran or something so they give you speed and that by phone you get is a fuse you want to find some very committed layout so that's where ci fond is that's I can exist
so in let's get to the code directly so force 1 is by far 1 for the 2nd 1 is the Cygnus past are seen so of code 1 is still safe on region so there's just a few definite just few differences when you compare the by finance icon just there's 1 see death so this gives you know 80 % FedEx on the menu compared to bite and like native Python code so this is like the reason of the function that I showed you can add a few more a optimizations that come to that slowly so safe on where
is it used so their meaning of a big big projects that use found what is meant by might have heard of Mumbai and as there is an answer by as well it's not an example of that yeah it does and yeah that's yeah it's
like putting a and C and Python at the same time OK we come to the use cases
slowly am I going too fast to system me know if I am yes thank you so much so let me that I have they it's enough lake again and again that you can wrap libraries uh so over example I've given them so in se urban you're writing something and see you having the structure is like you haven't at sea and that pitch In safe on you have got the right x and that the exceed analogous finds for those and let's see how we can do that OK so this again use cases we have performance-critical code I have explained this already again and again so the common procedure is when you really need to beat just you know uh you can use a compiler language they see this stars and then wrap the vocal insight on a set of linked directly doing it and sigh font link will give you like the speed and yes the that produce case it's OK used is monitoring so uh who knows about the jails I think everybody that's OK that's great so Jill is basically it's a global interpreter lock so let's Flanders that's gonna limb Lake bend that lock is acquired uh it limits the threat performance you won't be actually even if you're running a program on like a multicore CPU it won't be able to make on is the part particle the part so yes so there is a solution that 2nd provides to break out of the 2 but have acquired so let's see so the the the
unwritten rules of by form you don't talk about you actually you do not and see he don't
even mention the tail so so
let's get into example so this is a really that's a small function which actually gives us a few busy so it has a lot of computation again and again so it takes 6 . 7 seconds to run on lake my laptop and now see this is a sequential numbers and then all threads in all this is a simple function now let's consider the printed version and yet get the France and it takes 11 . 1 seconds and this this should not be this is not what you expect right so what happened what happened here that OK so it
actually what happens is that manually you'll run it on a multicore CPU and magical you actually expect to make this script to run late nearly half time but at least an equal it easily with time as of the sequential version but it's not happening because of the trended wasn't suffers from a really bad behavior of and always tries that operating system tries to discreetly should use the to tread on different cost but because of the till a lock anyone runs at a time and where's the other is more like across the course industry it keeps you know of it tries to allocate it to any but in this context so that's how it takes so much time so what's the solution I site
from provides a really good the context manager that's known as with no 2 so all of the characters like but you can use it and it does not that any Python object so
let's see how we can use this so this is of functions and their implementation of the same function but I like it has different computation it's like a bit more time in taking so yet so you have this that no and you can see in the busy and is costly and this will do so we use this fund expanded with modal so now that this you can see the last function it's implemented and later curacy because you you're using c debt everywhere you declaring all the types so it's not quite fond of it's not it's like yeah that's almost the sole depart performance is actually increased so much that a lot so all let's see this is you can actually
go out and you can use Japan or books to of gets the use of yellow bit this actually venue you cite late when you compile it using like a minus a flag it creates a link this is of legally aligns the more yellow and is the more by contraction is happening so you can see in line with 10 there is almost no quite interaction because yeah you had declared everything so this is like super fast and there are the number 1 and number 2 I the we'll also they're dealing with Python objects some there yet but actually they are that's fine so so 1 2 that you can take is you can decrease the yellow most of these lines if you want to optimize of old so that's 1 of the like if you want to optimize just of user minus the flag and get these results and see where you can actually use actually there is a need for optimization so yeah
movement our build site later response program so I have
yet there's a lot told like those of you my x find and it gets converted to this but see and then that C is limited to about a so or that the lady on windows and if you can import it directly into a paper session let's see how you can importantly you can build using the 4 methods you can use this to jails you can use the example that and it's really cool tool but you don't want use it on production and all we don't use it that is to be in a book gets the most commonly that's the way I use it so this is a simple Hill would
script so you have a sensors that this is actually quite for icon began as a tool you can put a piece into a table file and you can uh it around so uh this is this aligned from sigh the bill imports itemize it does all the work for you it's so late like if you can if you want to import it into the base of sessions uh at the I that's all the work for you so that you use Lake extensional using we do things the minds and their that's reusing URIs siphoned off by that but the way X so yes and many use this minus minus in place what it does it creates a doctor so find in your current directory so you can directly imported from there and it would work so yes congratulations you have major was siphoned and you know what you are yeah next yet you can use big import as well if you don't want to go through all that procedure of like fighting at the studios and everything begin this habit that makes find somewhere and and you can just use sticks import and import hello and it would work so it's a really easy way to do that but the
OK so what are the conclusions that we drive our naive some means of when you just space the Python called into the site and find so it does speed up things but it's not you know you probably don't just you don't up didn't opt for a 2nd to just get only 1 . 8 x increase and so you probably you might want to to read it more so you can optimize 1 is where you have i declarations where you are actually dealing with death and other of modifications so the PDF gives a really good improvement over death but the death is the actual power is so it's really valuable but you have to be very careful when you're using it so site on CDC death as uh almost yeah it's almost equal to the C version of that board is the best attempt like to actually increase of performance but OK no let's slowly
easily to the scientific computing 1 so num pions found the actually on provides a really fast access to them by areas so it has of sea level of types which is known as type memory you might have how many of you know memory Watzman review OK this to OK anybody else OK great so memory view is uh just of it so it's like similar to that of a protocol you don't have to like you'd like you can actually you will read and then get late in the contents of but to ballistic without early cannot do you much memory was just like an interface you don't need to copy it somewhere or you can just access it you can read it so at so the thank memory is kind of similar to the number I before support and yeah sites on actually allows you to work with buffers without even knowing they without even getting into the details of that so yeah that's pretty cool and that type of thing so that is what I from review is actually designed to work with the buffer protocol it kind of supports every buffer producing object efficiently and yeah so it allows sharing a buffet the the down-and-out copying so
OK so we're going exactly OK so now when you have a diagram reviews the cat gets a unicycle let's see how it how we improve this unicycle the smaller fast so yeah so let's suppose we want to work with late a one-dimensional buffer and safe on so we do not care lake color is created at the bike 11 we just want to access it in an efficient way so let's create at their function insight on that has taken review argument that it goes so this
double parentheses on a colon uh denotes the memory of the Teichmann review so you have actually actually passing Imam review as an argument to a function sole OK so yeah and you might want to so so you can see there few optimizations lakes static they decorations you're actually of defining the types of iron and total of I do we do that so i is actually the way below so you probably want to make a you know know always come to that later on can have full explanation that Soviet yeah so yeah so yeah here's the menu you actually attempts to access the objects underlaying the very soul if not passenger cannot provide a buffer that is later it's been publi public might not it doesn't support a portable then a value higher would be raised and if it does then it means it supports a political so this was so this is actually the the next 1 is actually the same court but that few more optimizations you have to eat more so when you are iterating to entitlement review sites on the treats it as a general by and so it actually was quite CVI for every every single axis so we can do better so we were doing it here we actually that's that that's considered as a Python iterator we appalling they API every time so how can we do better here so the tide reviews are designed in such a way that you don't have a Python overhead every time so it's like yeah it's the size it's T. style no way of accessing things so this was in has a much better performance from the if you make the late 1 of an area it like a million numbers and if you want to add them on the lake of lead by doing iteration and if you use this function but that it's actually sums document so if formalism are a off like a thousand objects of fuzzy numbers and this would be a this if say it takes say to Ms this will take all 1 less I tried it so I had and include examples so I thought I would explain it like this but there's 1 more thing the I found actually in this case I found and rates of called that bypasses the spike CPI cause and lake indexes into the underlying buffer directly so this is the lake source of why large speedup but we can still do better always so optimization never stops it's a never-ending process I learned it from Andrew I attended his workshop yesterday and so you know there 4 yesterday so yes OK so
now when you have this kind of low speed up our cat gets a good space in there and it can
do gymnastics so from again it's a bit vector improvement now but you can
you owe a lot so you can actually and increase the performance by the have to trade of safety let's see how uh so every time we access common review site context that late they next is in Mt so if it's out of bounds safe on reason it's also like iPhone allows us to index into memory views with negative and Annice's so just like the by for less the rap and extrapolation so in for function here yet the trait
through memory once and we do not do anything fancy it's just a rather simple thing so we know here we know ahead of time that you never going to index Let me never indexed with an out of 1 of the negative index condition so we can actually construct site on to turn all these bonds bouncing for a better performance so to do so we use a safe on special module with the bounds check and wraparound compiler it does so we have I have modified the cold
here yeah so it's the think of full function and now we have uh lake origin of the other is the definition but we have a new block or a context manager here which actually domes off the bounds and wraparound checking then be accessing memory of you there is none there's only really small performance improvement but more better efficient cogeneration it is up to that we ensure that indexes and lot balance if it does uh if you what are you use like negative indexes so you could lead to a segmentation with yet so the began OK and there's actually a lot of raised to turn off the bounds checking so the money is this you can use the context manager but if you just want to use of the seat it's at the very outset of false wraparound cause this is just above the law of if it means that you want to turn on the bound set for the next early so you if you want to do it for the whole function so you can OK not sorry OK yeah this is so if you want to do it affordable function you can use this and other and actually you can use a decorator so that's another form of directive that removes the context manager so there is 1 more way if you want to play remove the actively globally across the program so you can I use another compiler directives it's you can actually act on account of the line uh the bouncing is equal to forms and same for the wraparound soul so that's actually now the size and provides a different school levels for the directives 1 was context manager thinking the decorated this is they module level so you can actually have like really precise control over lake where these directives are in effect so they can be easier disabled and for the lake for debugging and yet and he enabled the production runs
yeah so yet now look at new this state it highest honor like big rocket and invest the laser beams in the eyes and it can be obtain can also do this
this up to you how much we can optimize so I promise that I show you a product
and a base so let's just a rap uh they what have we would have alone so these are how to declare late a simple is tight and review we saw how lake indexing that I review that then in know into argument can efficiently access the means underlain buffer we saw how to use a check and wraparound directives and the solid 3 different ways so our so when do we optimize they rejust on goal and optimize everything so II yet so I borrowed this from interviews tutorial again so so you fullest see later you have to actually profile and you have to set benchmarks they appear ready you want to optimize you just have so there are some really if you want to relate to read write and read small foreground you probably don't need optimization of do you have to relate know beforehand that you needed or not now you know it's all you can use the minus the tool that I to you or your so now you know where the optimization and he did so you can go ahead and the early AD static type declarations or any of the other the previous method that I told yes next OK so this is the project
and last year I went for a book in thinking was formalism report program so the project is c my view the it's actually a wrapper for library named VLFeat feet so we'll feed is actually uh so what is the of the
soul of use it is actually the popular in computer vision of Lorenz library actually specialize in image understanding and local feature extraction and matching so we have a couple of gardens you might know the SIFT scale-invariant feature transform k-means hierarchical k-means and slick superpixels and what should be superpixels easily very famous image of Northern's so yeah these are the boys and that it has sold II worked for a company in in so they needed to be working on overdue platform so what they were trying to do a it was actually uh so if you see a video on say someone is writing a card and if you know that part and you want to know which model is that part later probably reduce we shot and you are not able to get the spot there will be a no brand that so they were actually trying to make of video advertising platform so where you can get it provides you of you know at an interface to run the video where you can actually click on any pixel so if that pixel belongs to acquire links that saved somewhere at and you can see that when the bigger finishes are probably being in the middle so it saves actually cinema pixel was a labeled and it was mapped to the advertisement involved so if that hot so that if that that I was like for people you can actually see it and that we can directly go to the advertisements and advertisers that site something so that uh
so there was a lot of object detection and uh and more than that the project so I had to use real feet uh so that so it was like written in Matlab and so lake you know they don't for companies of fair matlab so they asked me to late winter you can write a few functions like you can wrap few functions for safe on so or by phone so I propose this project for a number of good last unit accepted and I uh so that so project was already into I didn't realize this but the project was already in progress by make a fight researches of the analytic plan and they were already working on it so I want to be get along them along with them so I lately were 14 15 features and the but competed so that so you can find it here let's see where you feed is a lot of mental project and mental was actually in the demo section of last year's CVPR on the computer vision community in pattern-recognition workshop last year so you can take and it's a small part of a big mental project so so yeah contribution that was going for arresting you feed you can actually forbidden Brown they create a new feature around so I also tell you few limitations of sites on that I face when I was working on the project so now these by the yeah these are the 2 modules that needs more work on these branches the lake still be active you can go to have a low or something uh so what I was actually a working man I was wrapping this particular library be so there is actually the min-sum would mean that you can see it has a so the translates of we were actually
taking their friends from the corresponding a Matlab Interface they had a Matlab interface so they relate so in in Matlab the structure is quite simple so there is then you have adopted their lake but it finds and makes actually provides the the makes finding technical rising given in matlab or Octave and functions in Lake Matlab answered the makes that mimics spies to that and so but so yes so the corresponding a siphon implementation would have been but which costly product PhD and art and see makes about pathways that we may X so that's the you know knowledge is so all there were no deviations under the Finnish electoral protein of features but me into a been some there was a final about death which is the module definition file so all of the lake so but island you brief introduction what differs this anybody know here would the difference OK and so and then those early but death describes what functions are going to be exported from the D 11
so so you so like lake in GCC Lenox where every symbol get exported by default so you have to tell me in the nose you have to late tell them why you would do it what functions to export uh so so the standard way of doing it too is right that defines so at that time I don't know how to only corrupt is defined in the form helped what's the knowledge as I wasn't documented anywhere so yeah I the it's unstoppable that's uh the normal way of doing so yet and I still can't figure it out if somebody knows can just talk to me later so this is the 1 limitation that I phase uh but sigh from an at the recent and there's 1 more limitation in Python 3 later they have removed the nested Tupper Liberman and so yes I found also doesn't support that so it's recently it's a recent removal all the slides are review if you want to make or something and picture of what
would it mean that few
of me so any questions
some we have and I'm trough actions of King so thank you so much it's a great
talking all person Montgomery too tightly in most of I have a question of do you have any examples all for import your referencing external libraries from siphoned and or
just have to keep in the back so you seen this 1 can you think
the seen board Lipsey that mass so
you can directly import of of the library and the him is an example of minus a as well so you see here as it generates something you can actually click on and yet so this is the 1st uh the sequel that it generates so yeah you should be able to read and if you want to optimize it so yet take some time so it's number
for his Nicholas yellow since it deals with those decades in the library that is important from C so yet to be small right here and that number of free it means with by from the death so clear that's the longer yes In this can remote
version of anything else yeah look thank you
so much you reader who
Intel
Software
COM
Wissenschaftliches Rechnen
Kombinatorische Gruppentheorie
Computeranimation
Hydrostatik
Demo <Programm>
Web Site
Gewicht <Mathematik>
Compiler
Natürliche Zahl
Browser
Zahlenbereich
Gebäude <Mathematik>
Computeranimation
Hydrostatik
Informationsmodellierung
Wrapper <Programmierung>
Wissenschaftliches Rechnen
Minimum
Programmbibliothek
Pi <Zahl>
Kontrollstruktur
Maßerweiterung
Maschinelles Sehen
Hilfesystem
Demo <Programm>
Programmiersprache
Ganze Abschließung
Quick-Sort
Hypermedia
Projektive Ebene
Compiler
Hydrostatik
Schreiben <Datenverarbeitung>
Typentheorie
Web Site
Forcing
Code
Deklarative Programmiersprache
Systemaufruf
Computeranimation
Objekt <Kategorie>
Hydrostatik
Parametersystem
Lineares Funktional
Web Site
Subtraktion
Typentheorie
Ortsoperator
Zustandsmaschine
Hyperbelverfahren
Minimierung
Schreiben <Datenverarbeitung>
Mailing-Liste
Elektronische Publikation
Binder <Informatik>
Code
Computeranimation
Spannweite <Stochastik>
Objekt <Kategorie>
Patch <Software>
Loop
Funktion <Mathematik>
Rechter Winkel
Code
Typentheorie
Ganze Abschließung
Wissenschaftliches Rechnen
Code
Mereologie
Programmbibliothek
Systemaufruf
Computeranimation
Schnittstelle
Lipschitz-Bedingung
Programmiersprache
Parametersystem
Diagramm
Web Site
Benutzerfreundlichkeit
Minimierung
Deklarative Programmiersprache
sinc-Funktion
Kartesische Koordinaten
Quellcode
Biprodukt
Gesetz <Physik>
Hinterlegungsverfahren <Kryptologie>
Code
Computeranimation
Rechenzentrum
Spannweite <Stochastik>
Arithmetisches Mittel
Lineares Funktional
Subtraktion
Elektronische Publikation
Minimierung
Fibonacci-Folge
Projektive Ebene
Bildschirmsymbol
Code
Computeranimation
Schnittstelle
Programmiersprache
Compiler
Besprechung/Interview
Mehrkernprozessor
Code
Computeranimation
Font
Modul <Datentyp>
Code
Programmbibliothek
Datenstruktur
Programmiersprache
Interpretierer
Physikalisches System
Interpretierer
Binder <Informatik>
Algorithmische Programmiersprache
Variable
Inverser Limes
Menge
Thread
Mereologie
Partikelsystem
Programmbibliothek
Compiler
Lineares Funktional
Numerische Mathematik
Zwei
Stichprobe
Versionsverwaltung
Schlussregel
Computeranimation
Bildschirmmaske
Task
Notebook-Computer
Wissenschaftliches Rechnen
Skript <Programm>
Thread
Steuerwerk
Zentraleinheit
Objekt <Kategorie>
Web Site
Datenmanagement
Versionsverwaltung
Skript <Programm>
Physikalisches System
Kontextbezogenes System
Computeranimation
Demo <Programm>
Lineares Funktional
Subtraktion
Typentheorie
Bit
Numerische Mathematik
Minimierung
Implementierung
Interaktives Fernsehen
Binder <Informatik>
Computeranimation
Design by Contract
Objekt <Kategorie>
Funktion <Mathematik>
Fahne <Mathematik>
Wissenschaftliches Rechnen
Versionsverwaltung
Gerade
Web Site
Code
Verweildauer
Bildschirmfenster
Endogene Variable
Notebook-Computer
Gebäude <Mathematik>
Biprodukt
Optimierung
Computeranimation
Web Site
Güte der Anpassung
Versionsverwaltung
Maßerweiterung
Bildschirmsymbol
Elektronische Publikation
Whiteboard
Raum-Zeit
Computeranimation
Arithmetisches Mittel
Modul <Datentyp>
Deklarative Programmiersprache
Skript <Programm>
Verzeichnisdienst
Tabelle <Informatik>
Leistung <Physik>
Parametersystem
Lineares Funktional
Typentheorie
Web Site
Sichtenkonzept
Protokoll <Datenverarbeitungssystem>
Numerische Mathematik
Aeroelastizität
Übergang
Ähnlichkeitsgeometrie
Computeranimation
Objekt <Kategorie>
Puffer <Netzplantechnik>
Diagramm
Array <Informatik>
Flächeninhalt
Typentheorie
Festspeicher
Wissenschaftliches Rechnen
Kantenfärbung
Computerunterstützte Übersetzung
Schnittstelle
Typentheorie
Web Site
Prozess <Physik>
Total <Mathematik>
Gewichtete Summe
Minimierung
Formale Grammatik
Iteration
Kartesische Koordinaten
Raum-Zeit
Computeranimation
Puffer <Netzplantechnik>
Typentheorie
Parametersystem
Lineares Funktional
Numerische Mathematik
Physikalischer Effekt
Übergang
Bitrate
Objekt <Kategorie>
Fuzzy-Logik
Flächeninhalt
Automatische Indexierung
Festspeicher
Overhead <Kommunikationstechnik>
Computerunterstützte Übersetzung
Lineares Funktional
Bit
Web Site
Sichtenkonzept
Extrapolation
Elektronischer Datenaustausch
Vektorraum
Kontextbezogenes System
Computeranimation
Gebundener Zustand
Negative Zahl
Automatische Indexierung
Festspeicher
Subtraktion
Compiler
Computeranimation
Richtung
Gebundener Zustand
Übergang
Bildschirmmaske
Negative Zahl
Datenmanagement
Typentheorie
Optimierung
Gerade
Soundverarbeitung
Lineares Funktional
Physikalischer Effekt
Übergang
p-Block
Kontextbezogenes System
Biprodukt
Summengleichung
Menge
Automatische Indexierung
Festspeicher
Konditionszahl
Gamecontroller
Parametersystem
Typentheorie
LASER <Mikrocomputer>
Minimierung
Biprodukt
Computeranimation
Richtung
Arithmetisches Mittel
Hydrostatik
Puffer <Netzplantechnik>
Automatische Indexierung
Deklarative Programmiersprache
Projektive Ebene
Aggregatzustand
Benchmark
Hierarchie <Mathematik>
Web Site
Sichtenkonzept
Pixel
Stellenring
Formale Grammatik
Binder <Informatik>
Systemplattform
Computeranimation
Videokonferenz
Informationsmodellierung
Mereologie
Wissenschaftliches Rechnen
Wrapper <Programmierung>
Programmbibliothek
Projektive Ebene
Optimierung
Maschinelles Sehen
Bildgebendes Verfahren
Verkehrsinformation
Demo <Programm>
Schnittstelle
Web Site
Demo <Programm>
Compiler
Automatische Handlungsplanung
Implementierung
Einheit <Mathematik>
Wissenschaftliches Rechnen
Programmbibliothek
Inverser Limes
Datenstruktur
Maschinelles Sehen
Schnittstelle
Metropolitan area network
Lineares Funktional
Numerische Mathematik
Güte der Anpassung
Anwendungsspezifischer Prozessor
Verzweigendes Programm
Elektronische Publikation
Biprodukt
Mustererkennung
Objekt <Kategorie>
Mereologie
Oktave <Mathematik>
Garbentheorie
Projektive Ebene
Hill-Differentialgleichung
Standardabweichung
Rechenschieber
Lineares Funktional
Bildschirmmaske
Inverser Limes
Symboltabelle
Figurierte Zahl
Default
Computeranimation
Gruppenoperation
Besprechung/Interview
Programmbibliothek
Computeranimation
Sinusfunktion
Numerische Mathematik
Rechter Winkel
Programmbibliothek
Hyperbelfunktion
Ruhmasse
Fortsetzung <Mathematik>
Große Vereinheitlichung
Whiteboard
Computeranimation
Versionsverwaltung
Computeranimation

Metadaten

Formale Metadaten

Titel Scientific computing using Cython: Best of both Worlds!
Serientitel EuroPython 2017
Autor Mourya, Simmi
Lizenz CC-Namensnennung - keine kommerzielle Nutzung - Weitergabe unter gleichen Bedingungen 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben
DOI 10.5446/33800
Herausgeber EuroPython
Erscheinungsjahr 2017
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract Scientific computing using Cython: Best of both Worlds! [EuroPython 2017 - Talk - 2017-07-14 - Anfiteatro 2] [Rimini, Italy] Cython is not only an excellent and widely used tool to speed up computational Python code, it’s also a very smart way to talk to native code and libraries. The Cython compiler translates Python code to C or C++ code, and supports static type annotations to allow direct use of C/C++ data types and functions. You get the best of both worlds while working with Cython: Python like syntax with blazing fast C speed. This talk/tutorial by a Python/Cython developer introduces Cython programming language and leads the participants all the way from their first Python extension to an efficient integration with native C. Topics covered will be: 1. Using the Cython compiler to build a native extension module 2. Cython development from Jupyter notebook 3. Mixing Python with static C types in the Cython language 4. Calling into native code from Cython code (Brief introduction) 5. Wrap up: A brief case study Cyvlfeat: A Cython/Python wrapper for Computer Vision library, VLFeat. Participants are expected to have a good understanding of the Python language, some basic knowledge about C or C++. No deep C programming knowledge is required, nor is any prior knowledge needed about writing extension modules for the CPython runtime

Ähnliche Filme

Loading...
Feedback