You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit e773f7f
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: webinar.md
+43-39Lines changed: 43 additions & 39 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,25 +1,25 @@
1
-
-[Процесс](#orgdce21ae)
2
-
-[Поток](#org899e90b)
3
-
-[Что можно узнать про процесс?](#orgfb9a80d)
4
-
-[создание процессов](#org9a5aa98)
5
-
-[CPU-bound / IO-bound задачи](#orgb15f906)
6
-
-[GIL](#org0a72ae4)
7
-
-[GIL](#orgc07038f)
8
-
-[GIL](#orgf68f849)
9
-
-[GIL](#org590eacd)
10
-
-[Практика](#orgffa42c4)
11
-
-[Дополнительная литература](#orgd9c5aae)
12
-
-[Что такое Celery?](#orge2ecbad)
13
-
-[Практика запуска задач на Celery](#org959a42c)
14
-
-[Практика запуска задач на Celery](#org6ad8e52)
15
-
-[Что такое map-reduce](#orgf8b3195)
16
-
-[Практика запуска map-reduce на pyspark](#org225a94f)
17
-
-[Практика запуска map-reduce на pyspark](#org68827c3)
18
-
-[Вопросы-ответы](#org48e2a02)
19
-
20
-
21
-
22
-
<aid="orgdce21ae"></a>
1
+
-[Процесс](#orgf325def)
2
+
-[Поток](#orgd3abaef)
3
+
-[Что можно узнать про процесс?](#org70c1b81)
4
+
-[создание процессов](#orgfc89ae2)
5
+
-[CPU-bound / IO-bound задачи](#org8478f28)
6
+
-[GIL](#org8b5e883)
7
+
-[GIL](#orgb0903ca)
8
+
-[GIL](#org480d63e)
9
+
-[GIL](#orgc90ac95)
10
+
-[Практика](#orgef919a8)
11
+
-[Дополнительная литература](#org704d888)
12
+
-[Что такое Celery?](#org491c26f)
13
+
-[Практика запуска задач на Celery](#org65eca52)
14
+
-[Практика запуска задач на Celery](#org1efd6c7)
15
+
-[Что такое map-reduce](#org9bcb22d)
16
+
-[Практика запуска map-reduce на pyspark](#orgb4ce801)
17
+
-[Практика запуска map-reduce на pyspark](#orgf20c815)
18
+
-[Вопросы-ответы](#org3ed99ab)
19
+
20
+
21
+
22
+
<aid="orgf325def"></a>
23
23
24
24
# Процесс
25
25
@@ -32,7 +32,7 @@
32
32
Переключение между процессами происходит на уровне ядра.
33
33
34
34
35
-
<aid="org899e90b"></a>
35
+
<aid="orgd3abaef"></a>
36
36
37
37
# Поток
38
38
@@ -42,7 +42,7 @@
42
42
Переключение между потоками может происходить как на уровне ядра, так и на уровне пользователя (процесса).
43
43
44
44
45
-
<aid="orgfb9a80d"></a>
45
+
<aid="org70c1b81"></a>
46
46
47
47
# Что можно узнать про процесс?
48
48
@@ -55,7 +55,7 @@ ls -l /proc/<PID>/
55
55
```
56
56
57
57
58
-
<aid="org9a5aa98"></a>
58
+
<aid="orgfc89ae2"></a>
59
59
60
60
# создание процессов
61
61
@@ -65,15 +65,15 @@ ls -l /proc/<PID>/
65
65
-**CreateProcess:** Win2k-системы
66
66
67
67
68
-
<aid="orgb15f906"></a>
68
+
<aid="org8478f28"></a>
69
69
70
70
# CPU-bound / IO-bound задачи
71
71
72
72
-**CPU-bound:** задачи, которые активно используют CPU. Арифметические операции, матричные вычисления, поиск строк, и т.д.
73
73
-**IO-bound:** задачи, связанные с вводом-выводом данных. Работа с сетью, с файловыми системами, с пользовательским вводом
74
74
75
75
76
-
<aid="org0a72ae4"></a>
76
+
<aid="org8b5e883"></a>
77
77
78
78
# GIL
79
79
@@ -86,14 +86,14 @@ static PyThread_type_lock
86
86
```
87
87
88
88
89
-
<aid="orgc07038f"></a>
89
+
<aid="orgb0903ca"></a>
90
90
91
91
# GIL
92
92
93
93
GIL гарантирует интерпретатору, что только один *поток* может быть запущен в текущий момент. Это сделано для безопасной работы управления памятью, вызова расширений написанных на других языках (на C).
94
94
95
95
96
-
<aid="orgf68f849"></a>
96
+
<aid="org480d63e"></a>
97
97
98
98
# GIL
99
99
@@ -103,21 +103,21 @@ GIL гарантирует интерпретатору, что только о
103
103
- sys.getswitchinterval() # -> Python3
104
104
105
105
106
-
<aid="org590eacd"></a>
106
+
<aid="orgc90ac95"></a>
107
107
108
108
# GIL
109
109
110
110
GIL замедляет CPU-bound задачи. Старая реализация GIL очень плохо работала с *CPU-bound + IO-bound* задачами. <spanclass="underline"><spanclass="underline">[Пример](https://dabeaz.blogspot.com/2010/01/python-gil-visualized.html)</span></span>, да и новая не лучше.
Это процесс решения больших задач при помощи разбивки данных на части и решения задач с частями данных на разных машинах. MapReduce состоит из обязательных шагов:
0 commit comments