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 dcb6e65
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: webinar.md
+49-39Lines changed: 49 additions & 39 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,24 +1,25 @@
1
-
-[Процесс](#org5462f95)
2
-
-[Поток](#orgee5cb08)
3
-
-[Что можно узнать про процесс?](#org0af10b3)
4
-
-[создание процессов](#org3fa51d9)
5
-
-[CPU-bound / IO-bound задачи](#org37135aa)
6
-
-[GIL](#orgdd6460d)
7
-
-[GIL](#org3bdf677)
8
-
-[GIL](#org87eb7e5)
9
-
-[GIL](#org285fe74)
10
-
-[Практика](#org0a693c4)
11
-
-[Дополнительная литература](#orge48836f)
12
-
-[Что такое Celery?](#org3a64cf7)
13
-
-[Практика запуска задач на Celery](#orgf34b2f0)
14
-
-[Что такое map-reduce](#org672c593)
15
-
-[Практика запуска map-reduce на pyspark](#org98a8d38)
16
-
-[Практика запуска map-reduce на pyspark](#org5394ae7)
17
-
-[Вопросы-ответы](#org9220784)
18
-
19
-
20
-
21
-
<aid="org5462f95"></a>
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>
22
23
23
24
# Процесс
24
25
@@ -31,7 +32,7 @@
31
32
Переключение между процессами происходит на уровне ядра.
32
33
33
34
34
-
<aid="orgee5cb08"></a>
35
+
<aid="org899e90b"></a>
35
36
36
37
# Поток
37
38
@@ -41,7 +42,7 @@
41
42
Переключение между потоками может происходить как на уровне ядра, так и на уровне пользователя (процесса).
42
43
43
44
44
-
<aid="org0af10b3"></a>
45
+
<aid="orgfb9a80d"></a>
45
46
46
47
# Что можно узнать про процесс?
47
48
@@ -54,7 +55,7 @@ ls -l /proc/<PID>/
54
55
```
55
56
56
57
57
-
<aid="org3fa51d9"></a>
58
+
<aid="org9a5aa98"></a>
58
59
59
60
# создание процессов
60
61
@@ -64,15 +65,15 @@ ls -l /proc/<PID>/
64
65
-**CreateProcess:** Win2k-системы
65
66
66
67
67
-
<aid="org37135aa"></a>
68
+
<aid="orgb15f906"></a>
68
69
69
70
# CPU-bound / IO-bound задачи
70
71
71
72
-**CPU-bound:** задачи, которые активно используют CPU. Арифметические операции, матричные вычисления, поиск строк, и т.д.
72
73
-**IO-bound:** задачи, связанные с вводом-выводом данных. Работа с сетью, с файловыми системами, с пользовательским вводом
73
74
74
75
75
-
<aid="orgdd6460d"></a>
76
+
<aid="org0a72ae4"></a>
76
77
77
78
# GIL
78
79
@@ -85,38 +86,38 @@ static PyThread_type_lock
85
86
```
86
87
87
88
88
-
<aid="org3bdf677"></a>
89
+
<aid="orgc07038f"></a>
89
90
90
91
# GIL
91
92
92
93
GIL гарантирует интерпретатору, что только один *поток* может быть запущен в текущий момент. Это сделано для безопасной работы управления памятью, вызова расширений написанных на других языках (на C).
93
94
94
95
95
-
<aid="org87eb7e5"></a>
96
+
<aid="orgf68f849"></a>
96
97
97
98
# GIL
98
99
99
-

100
+

100
101
101
102
- sys.getcheckinterval() # -> Python2
102
103
- sys.getswitchinterval() # -> Python3
103
104
104
105
105
-
<aid="org285fe74"></a>
106
+
<aid="org590eacd"></a>
106
107
107
108
# GIL
108
109
109
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>, да и новая не лучше.
Copy file name to clipboardExpand all lines: webinar.org
+6-2Lines changed: 6 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,7 +45,7 @@
45
45
* GIL
46
46
GIL гарантирует интерпретатору, что только один /поток/ может быть запущен в текущий момент. Это сделано для безопасной работы управления памятью, вызова расширений написанных на других языках (на C).
Это процесс решения больших задач при помощи разбивки данных на части и решения задач с частями данных на разных машинах. MapReduce состоит из обязательных шагов:
73
77
1. Map — разбить данные на блоки (присвоить каждой записи некоторый ключ блока)
0 commit comments