SlideShare une entreprise Scribd logo
1  sur  56
Télécharger pour lire hors ligne
Understanding GIL
Senthil Kumaran
orsenthil@gmail.com 
Scipy.in 2009 

 

 
How I use python?
 Python coredev ­ stdlib.

●

 At work – Akamai.

●

 Fun.

●

 

 
Thanks!
●

●

 

David Beazly – Inside the Python GIL talk.
Pictures are from his slides.

 
Outline of the talk
●

●

Python Interpreter.

●

Python Threading Support.

●

What is GIL.

●

GIL Behavior.

●

Newgil in py3.2

●

Parallelism – Other ways.

●

 

Threads.

etc
 
Threads
●

Parallel units of execution within a process.

●

All threads share the same memory.

●

●

 

Eat and think around the table, sometimes 
sharing the fork and knife. 
Problems with Threading involve the Shared 
Resources and Thread Synchronization
 
Python Programming language
●

Different Implementations. 
●

●

●
 

 Jython

●

●

Cpython
IronPython.

We are going to discuss Cpython 
implementation.
Bytecode based.
 
Python Interpretor
●

●

●

 

Interpreter is a single process.
Within that process, only one thread can be 
interpreting python byte codes at one time. 
If that thread is blocked (waiting or I/O), 
another thread can be run. Some C 
extensions release GIL so that threads can 
run concurrently.
 
This is how

 

 
Python and Threading Support
●

●

●

 

A standard library module called threading.
But the execution of threaded programs is 
very basic.
You have to define the synchronization 
mechanism.
 
What is Python Thread?
●

Python threads are real system threads.
●

●

●

POSIX threads (pthreads)
Windows threads

Fully managed by the host operating system.
●

●

 

All the scheduling/threading switching.

Represent threaded execution of the Python 
inpterpretor process (written in C).
 
Thread Creation
●

Python threads simply execute a “callable”

●

The run() method of Thread 

●

●

●

 

Inside, the Python creates a small data 
structure containing some interpreter state.
A new thread (pthread) is lauched,
The thread calls PyEval_CallObject. It is just a 
C function call that runs the Python callable.
 
Thread Specific State
●

Each thread has its own interpreter specific data 
structure (PyThreadState)
●

●

●

●

 

Details of the Thread currently under execution.

The interpreter has a global variable that simply points to 
the ThreadState strcture of the currently running thread. 
/* Python/pystate.c */
Operations in the Interpreter implicitly depend on this 
variable to know the state.
 
What is GIL
●

●

●

 

GIL Serializes the access to most part of the 
interpreter.
Only one thread is running at a time. 
The GIL ensures that each thread gets 
exclusive access to the Interpreter internals 
when its running.
 
GIL Behaviour
●

●

●

 

Its simple. Threads hold the GIL when 
running.
However, they release it when blocking for 
I/O.
It is coperative multi­tasking.

 
CPU Bound process
●

To deal with CPU bound threads that never 
perform any I/O, the interpreter periodically 
performs a “check”.

●

By default, every 100 interpreter “ticks”

●

sys.setcheckinterval 

●

 

The check interval is independent of thread 
scheduling.
 
sys.setcheckinterval

 

 
The Periodic Check
●

Release and Reacquire GIL.

●

Signaling the OS to run other thread.

●

Other threads get to run.. (somewhat )
All of these is for py < 3.2

 

 
Interpreter ticks
●

●

Ticks are uninterruptible

●

 

They are not time based ( for < py3.2)
Long Operations can block everything.

 
Thread Scheduling
●

●

●

●

 

Interpreter does not do any thread scheduling.
There is no notion of thread priorities, preemption, 
round­robin scheduling.
All thread scheduling is left to the host operating 
system.
There comes the problem with signals. Only main 
thread handles signals and interpretor cannot schedule 
it execution, but has to wait for OS to schedule it when 
the any signal arrives.
 
Interpreter does NO thread 
scheduling

 

 
More details on GIL
●

Its not a simple mutex.

●

It is some kind of semaphore.

●

●

 

The acquisition and release is based on the 
signals from the OS.
OS does the scheduling based on priorities 
like CPU bound task has low priority and IO 
bound tasks have higher priority.
 
Multicore GIL contention
●

●

 

CPU bound operations get scheduled 
simultaneous.
And they have a GIL battle in the Interpeter.

 
GIL Contention

 

 
Newgil implementation
●

●

●

●

●

 

Antoine Pitrou – Oct 2009
Ditch the switching based on tick in the newgil 
implementation. (No Py_Ticker based count)
Use fixed intervals (5 milliseconds) for the main thread to 
release the GIL.
This fixed interval switching has significant benefits on 
thread contentions. 
Forced thread switching.  Improves the thread switch 
latency.
 
ccbench
●

●

●

 

Pure Python workload (PI Calculation).
C workload which does not release GIL 
(re.search)
C workload which does release GIL.

 
Other Concurrency Options
●

Practical programming scenarios ( IO and CPU Bound)

●

Multi processing.

●

C extension that can release GIL.

●

Asynchronous event based – Great for Networking applications. 

●

●

 

Coroutines – python 2.5 where you can pass values to 
generators.
Other Python implementations. Jython, IronPython, Unladen 
Swallow.

 
Thanks
●

orsenthil@gmail.com

●

http://uthcode.sarovar.org

●

●

 

Search or David Beazly talk on Inside the 
Python GIL.
Newgil implementation is currently in py3k 
branch (which will become python 3.2, est. by 
Jun 2010) 
 
Notes
●

●

gil_locked and gil_mutex

●

gil_drop_request

●

gil_cond variable (waiting for interval)

●

 

sys.{set,get}checkinterval

switch_cond  check for gil_last_hold.

 
 

 

 

Understanding GIL
Senthil Kumaran
orsenthil@gmail.com 
Scipy.in 2009 

 

 

1
 

 

 

How I use python?
●

 Python coredev ­ stdlib.

●

 At work – Akamai.

●

 Fun.

 

 

2
 

 

 

Thanks!
●

●

 

David Beazly – Inside the Python GIL talk.
Pictures are from his slides.

 

3
 

 

 

Outline of the talk
●

●

Python Interpreter.

●

Python Threading Support.

●

What is GIL.

●

GIL Behavior.

●

Newgil in py3.2

●

Parallelism – Other ways.

●

 

Threads.

etc
 

4
 

 

 

Threads
●

Parallel units of execution within a process.

●

All threads share the same memory.

●

●

 

Eat and think around the table, sometimes 
sharing the fork and knife. 
Problems with Threading involve the Shared 
Resources and Thread Synchronization
 

5
 

 

 

Python Programming language
●

Different Implementations. 
●

●

●
 

 Jython

●

●

Cpython
IronPython.

We are going to discuss Cpython 
implementation.
Bytecode based.
 

6
 

 

 

Python Interpretor
●

●

●

 

Interpreter is a single process.
Within that process, only one thread can be 
interpreting python byte codes at one time. 
If that thread is blocked (waiting or I/O), 
another thread can be run. Some C 
extensions release GIL so that threads can 
run concurrently.
 

7
 

 

 

This is how

 

 

8
 

 

 

Python and Threading Support
●

●

●

 

A standard library module called threading.
But the execution of threaded programs is 
very basic.
You have to define the synchronization 
mechanism.
 

9
 

 

 

What is Python Thread?
●

Python threads are real system threads.
●

●

●

POSIX threads (pthreads)
Windows threads

Fully managed by the host operating system.
●

●

 

All the scheduling/threading switching.

Represent threaded execution of the Python 
inpterpretor process (written in C).
 

10
 

 

 

Thread Creation
●

Python threads simply execute a “callable”

●

The run() method of Thread 

●

●

●

 

Inside, the Python creates a small data 
structure containing some interpreter state.
A new thread (pthread) is lauched,
The thread calls PyEval_CallObject. It is just a 
C function call that runs the Python callable.
 

11
 

 

 

Thread Specific State
●

Each thread has its own interpreter specific data 
structure (PyThreadState)
●

●

●

●

 

Details of the Thread currently under execution.

The interpreter has a global variable that simply points to 
the ThreadState strcture of the currently running thread. 
/* Python/pystate.c */
Operations in the Interpreter implicitly depend on this 
variable to know the state.
 

12
 

 

 

What is GIL
●

●

●

 

GIL Serializes the access to most part of the 
interpreter.
Only one thread is running at a time. 
The GIL ensures that each thread gets 
exclusive access to the Interpreter internals 
when its running.
 

13
 

 

 

GIL Behaviour
●

●

●

 

Its simple. Threads hold the GIL when 
running.
However, they release it when blocking for 
I/O.
It is coperative multi­tasking.

 

14
 

 

 

CPU Bound process
●

To deal with CPU bound threads that never 
perform any I/O, the interpreter periodically 
performs a “check”.

●

By default, every 100 interpreter “ticks”

●

sys.setcheckinterval 

●

 

The check interval is independent of thread 
scheduling.
 

15
 

 

 

sys.setcheckinterval

 

 

16
 

 

 

The Periodic Check
●

Release and Reacquire GIL.

●

Signaling the OS to run other thread.

●

Other threads get to run.. (somewhat )
All of these is for py < 3.2

 

 

17
 

 

 

Interpreter ticks
●

●

Ticks are uninterruptible

●

 

They are not time based ( for < py3.2)
Long Operations can block everything.

 

18
 

 

 

Thread Scheduling
●

●

●

●

 

Interpreter does not do any thread scheduling.
There is no notion of thread priorities, preemption, 
round­robin scheduling.
All thread scheduling is left to the host operating 
system.
There comes the problem with signals. Only main 
thread handles signals and interpretor cannot schedule 
it execution, but has to wait for OS to schedule it when 
the any signal arrives.
 

19
 

 

 

Interpreter does NO thread 
scheduling

 

 

20
 

 

 

More details on GIL
●

Its not a simple mutex.

●

It is some kind of semaphore.

●

●

 

The acquisition and release is based on the 
signals from the OS.
OS does the scheduling based on priorities 
like CPU bound task has low priority and IO 
bound tasks have higher priority.
 

21
 

 

 

Multicore GIL contention
●

●

 

CPU bound operations get scheduled 
simultaneous.
And they have a GIL battle in the Interpeter.

 

22
 

 

 

GIL Contention

 

 

23
 

 

 

Newgil implementation
●

●

●

●

●

 

Antoine Pitrou – Oct 2009
Ditch the switching based on tick in the newgil 
implementation. (No Py_Ticker based count)
Use fixed intervals (5 milliseconds) for the main thread to 
release the GIL.
This fixed interval switching has significant benefits on 
thread contentions. 
Forced thread switching.  Improves the thread switch 
latency.
 

24
 

 

 

ccbench
●

●

●

 

Pure Python workload (PI Calculation).
C workload which does not release GIL 
(re.search)
C workload which does release GIL.

 

25
 

 

 

Other Concurrency Options
●

Practical programming scenarios ( IO and CPU Bound)

●

Multi processing.

●

C extension that can release GIL.

●

Asynchronous event based – Great for Networking applications. 

●

●

 

Coroutines – python 2.5 where you can pass values to 
generators.
Other Python implementations. Jython, IronPython, Unladen 
Swallow.

 

26
 

 

 

Thanks
●

orsenthil@gmail.com

●

http://uthcode.sarovar.org

●

●

 

Search or David Beazly talk on Inside the 
Python GIL.
Newgil implementation is currently in py3k 
branch (which will become python 3.2, est. by 
Jun 2010) 
 

27
 

 

 

Notes
●

●

gil_locked and gil_mutex

●

gil_drop_request

●

gil_cond variable (waiting for interval)

●

 

sys.{set,get}checkinterval

switch_cond  check for gil_last_hold.

 

28

Contenu connexe

En vedette

Lacopadelavida(1)
Lacopadelavida(1)Lacopadelavida(1)
Lacopadelavida(1)aleuba2014
 
Vladimir Bychkov
Vladimir BychkovVladimir Bychkov
Vladimir Bychkovprosvsports
 
Prep 2 Worksheet Hello 11 + 12
Prep 2 Worksheet Hello 11 + 12Prep 2 Worksheet Hello 11 + 12
Prep 2 Worksheet Hello 11 + 12Sawsan Ali
 
Investigation of otolith in Priacanthus tayenusin persian gulf and Oman Sea
Investigation of otolith in Priacanthus tayenusin persian gulf and Oman SeaInvestigation of otolith in Priacanthus tayenusin persian gulf and Oman Sea
Investigation of otolith in Priacanthus tayenusin persian gulf and Oman SeaInnspub Net
 
2 эволюция системного подхода
2 эволюция системного подхода2 эволюция системного подхода
2 эволюция системного подходаAnatoly Yasinsky
 
Original photos
Original photosOriginal photos
Original photosasmediac15
 

En vedette (8)

Lacopadelavida(1)
Lacopadelavida(1)Lacopadelavida(1)
Lacopadelavida(1)
 
Vladimir Bychkov
Vladimir BychkovVladimir Bychkov
Vladimir Bychkov
 
Prep 2 Worksheet Hello 11 + 12
Prep 2 Worksheet Hello 11 + 12Prep 2 Worksheet Hello 11 + 12
Prep 2 Worksheet Hello 11 + 12
 
Investigation of otolith in Priacanthus tayenusin persian gulf and Oman Sea
Investigation of otolith in Priacanthus tayenusin persian gulf and Oman SeaInvestigation of otolith in Priacanthus tayenusin persian gulf and Oman Sea
Investigation of otolith in Priacanthus tayenusin persian gulf and Oman Sea
 
2 эволюция системного подхода
2 эволюция системного подхода2 эволюция системного подхода
2 эволюция системного подхода
 
Proyecto de aula
Proyecto de aulaProyecto de aula
Proyecto de aula
 
Original photos
Original photosOriginal photos
Original photos
 
NATIONAL DIPLOMA
NATIONAL DIPLOMANATIONAL DIPLOMA
NATIONAL DIPLOMA
 

Similaire à Understanding the Python Global Interpreter Lock (GIL

Migrating our monolith to Python 3
Migrating our monolith to Python 3Migrating our monolith to Python 3
Migrating our monolith to Python 3Ilian Iliev
 
Pycon11: Python threads: Dive into GIL!
Pycon11: Python threads: Dive into GIL!Pycon11: Python threads: Dive into GIL!
Pycon11: Python threads: Dive into GIL!Chetan Giridhar
 
Gil - the responsible to unable paralellism
Gil - the responsible to unable paralellismGil - the responsible to unable paralellism
Gil - the responsible to unable paralellismGeison Goes
 
Python: Thanks for the memories
Python: Thanks for the memoriesPython: Thanks for the memories
Python: Thanks for the memoriesDanil Ineev
 
SRECon19 Asia - Enhance Your Python Code Beyond GIL
SRECon19 Asia - Enhance Your Python Code Beyond GILSRECon19 Asia - Enhance Your Python Code Beyond GIL
SRECon19 Asia - Enhance Your Python Code Beyond GILNitin Bhojwani
 
SoC Python Discussion Group
SoC Python Discussion GroupSoC Python Discussion Group
SoC Python Discussion Groupkrishna_dubba
 
I didn't know you could do that with groovy
I didn't know you could do that with groovyI didn't know you could do that with groovy
I didn't know you could do that with groovySteven Hicks
 
Python assignment help from professional programmers
Python assignment help from professional programmersPython assignment help from professional programmers
Python assignment help from professional programmersAnderson Silva
 
Programming with Python - Basic
Programming with Python - BasicProgramming with Python - Basic
Programming with Python - BasicMosky Liu
 
Lecture 2 introduction to python
Lecture 2  introduction to pythonLecture 2  introduction to python
Lecture 2 introduction to pythonalvin567
 
Programming in python - Week 7,8
Programming in python - Week 7,8Programming in python - Week 7,8
Programming in python - Week 7,8Priya Nayak
 
testmon for Python
testmon for Pythontestmon for Python
testmon for Pythontib0r
 

Similaire à Understanding the Python Global Interpreter Lock (GIL (19)

Migrating our monolith to Python 3
Migrating our monolith to Python 3Migrating our monolith to Python 3
Migrating our monolith to Python 3
 
Pycon11: Python threads: Dive into GIL!
Pycon11: Python threads: Dive into GIL!Pycon11: Python threads: Dive into GIL!
Pycon11: Python threads: Dive into GIL!
 
Gil - the responsible to unable paralellism
Gil - the responsible to unable paralellismGil - the responsible to unable paralellism
Gil - the responsible to unable paralellism
 
Python: Thanks for the memories
Python: Thanks for the memoriesPython: Thanks for the memories
Python: Thanks for the memories
 
Rusty Python
Rusty PythonRusty Python
Rusty Python
 
SRECon19 Asia - Enhance Your Python Code Beyond GIL
SRECon19 Asia - Enhance Your Python Code Beyond GILSRECon19 Asia - Enhance Your Python Code Beyond GIL
SRECon19 Asia - Enhance Your Python Code Beyond GIL
 
Jython
JythonJython
Jython
 
Jython-Introduction
Jython-IntroductionJython-Introduction
Jython-Introduction
 
Jython
JythonJython
Jython
 
SoC Python Discussion Group
SoC Python Discussion GroupSoC Python Discussion Group
SoC Python Discussion Group
 
Introduce Python
Introduce PythonIntroduce Python
Introduce Python
 
I didn't know you could do that with groovy
I didn't know you could do that with groovyI didn't know you could do that with groovy
I didn't know you could do that with groovy
 
Python assignment help from professional programmers
Python assignment help from professional programmersPython assignment help from professional programmers
Python assignment help from professional programmers
 
Git intro fajar muslim
Git intro fajar muslimGit intro fajar muslim
Git intro fajar muslim
 
Programming with Python - Basic
Programming with Python - BasicProgramming with Python - Basic
Programming with Python - Basic
 
Lecture 2 introduction to python
Lecture 2  introduction to pythonLecture 2  introduction to python
Lecture 2 introduction to python
 
Programming in python - Week 7,8
Programming in python - Week 7,8Programming in python - Week 7,8
Programming in python - Week 7,8
 
Ruby memory model
Ruby memory modelRuby memory model
Ruby memory model
 
testmon for Python
testmon for Pythontestmon for Python
testmon for Python
 

Plus de O. R. Kumaran

Version control with Subversion
Version control with SubversionVersion control with Subversion
Version control with SubversionO. R. Kumaran
 
Search for Extra Terrestrial Intelligence
Search for Extra Terrestrial Intelligence Search for Extra Terrestrial Intelligence
Search for Extra Terrestrial Intelligence O. R. Kumaran
 
Gnu Privacy Guard - Intro
Gnu Privacy Guard - IntroGnu Privacy Guard - Intro
Gnu Privacy Guard - IntroO. R. Kumaran
 
Hrishikesh kulkarni's and madeline wills's powerpoint file on the talent code-
Hrishikesh kulkarni's and madeline wills's powerpoint file on  the talent code-Hrishikesh kulkarni's and madeline wills's powerpoint file on  the talent code-
Hrishikesh kulkarni's and madeline wills's powerpoint file on the talent code-O. R. Kumaran
 
Hg wells time-machine.
Hg wells time-machine.Hg wells time-machine.
Hg wells time-machine.O. R. Kumaran
 

Plus de O. R. Kumaran (6)

Supervised learning
Supervised learningSupervised learning
Supervised learning
 
Version control with Subversion
Version control with SubversionVersion control with Subversion
Version control with Subversion
 
Search for Extra Terrestrial Intelligence
Search for Extra Terrestrial Intelligence Search for Extra Terrestrial Intelligence
Search for Extra Terrestrial Intelligence
 
Gnu Privacy Guard - Intro
Gnu Privacy Guard - IntroGnu Privacy Guard - Intro
Gnu Privacy Guard - Intro
 
Hrishikesh kulkarni's and madeline wills's powerpoint file on the talent code-
Hrishikesh kulkarni's and madeline wills's powerpoint file on  the talent code-Hrishikesh kulkarni's and madeline wills's powerpoint file on  the talent code-
Hrishikesh kulkarni's and madeline wills's powerpoint file on the talent code-
 
Hg wells time-machine.
Hg wells time-machine.Hg wells time-machine.
Hg wells time-machine.
 

Dernier

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Dernier (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

Understanding the Python Global Interpreter Lock (GIL