Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 18, 2018 18:19:35

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не понял многопоточность (threading)

Pironity
Я вас тиранить начну, если вы популярно не объясните мне, что такое потоки в понимании архитектуры процессора.



Отредактировано FishHook (Фев. 18, 2018 18:34:30)

Офлайн

#2 Фев. 18, 2018 18:32:04

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

Не понял многопоточность (threading)

Pironity
Не совсем понял, как эти расширения помогут
 from time import time
import numpy
t0 = time()
a1 = numpy.arange(0,1000000,2)
a2 = numpy.arange(0,1000000,3)
print(time() - t0)
del a1,a2
t0 = time()
a1 = [i for i in range(0,1000000,2)]
a2 = [i for i in range(0,1000000,3)]
print(time() - t0)
>>>0.0033609867095947266
>>>0.05250215530395508
есть некоторая разница

Офлайн

#3 Фев. 18, 2018 18:46:51

Pironity
Зарегистрирован: 2018-02-18
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Не понял многопоточность (threading)

FishHook
PironityЯ вас тиранить начну, если вы популярно не объясните мне, что такое потоки в понимании архитектуры процессора.
Цитируя перевод 6-го издания “Архитектура компьютера” Танненбауна и Остина изд. Питер (ст.226, последний абзац):
Core i7 является многоядерным процессором; таким образом, кремниевая подложка содержит несколько процессоров… Если программисты пишут параллельную программу с использование потоков и блокировок, организация параллельного выполнения на нескольких процессорах обеспечит существенный выигрышь по скорости, поддерживая технологию гиперпоточности, позволяющую нескольким аппаратным потокам быть активными одновременно. Гиперпоточность позволяет осуществлять аппаратное переключение потоков во время коротких задержек.

Офлайн

#4 Фев. 18, 2018 18:50:23

Pironity
Зарегистрирован: 2018-02-18
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Не понял многопоточность (threading)

vic57
есть некоторая разница
Проверить не смог, т.к.
 module 'numpy' has no attribute 'arange'
Python 3.6.4

Офлайн

#5 Фев. 18, 2018 18:55:58

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не понял многопоточность (threading)

Pironity
Да я это читал. Я же от вас не цитату просил, я просил буквально

что такое потоки в вашем понимании архитектуры процессора.
мне кажется, что вы не понимаете, что такое потоки (нити, трэды). Вы не считайте, что я вас как-то “напрягаю” в дворовом понимании, тут гопников нет. Мы ищем истину.
Смотрите, есть одно ядро процессора или семь ядер, это не важно. Допустим, что одно. Совсем еще недавно было доступно только одно. Как по вашему работает параллельное выполнение ста потоков на только одном ядре процессора? Реально же ведь только одна команда процессора может выполниться в единицу времени.



Офлайн

#6 Фев. 18, 2018 18:57:22

Pironity
Зарегистрирован: 2018-02-18
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Не понял многопоточность (threading)

FishHook
Как по вашему работает параллельное выполнение ста потоков на только одном ядре процессора? Реально же ведь только одна команда процессора может выполниться в единицу времени.
SIMD

Отредактировано Pironity (Фев. 18, 2018 18:58:32)

Офлайн

#7 Фев. 18, 2018 18:59:40

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не понял многопоточность (threading)

GHTRU



Офлайн

#8 Фев. 18, 2018 19:07:24

Pironity
Зарегистрирован: 2018-02-18
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Не понял многопоточность (threading)

RD, PRS, FRS, TRS

Отредактировано Pironity (Фев. 18, 2018 19:07:53)

Офлайн

#9 Фев. 18, 2018 19:11:40

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не понял многопоточность (threading)

Вам надоело общаться по человечески?
Слушайте, вас труднго понять. Вы пришли на форум с проблемой “Не понимаю многопоточность”. Ну Ок, давайте пробовать понимать. Вы зачем кривляетесь то, вы хотите мне что-то доказать? А как это решит вашу проблему?



Офлайн

#10 Фев. 18, 2018 19:16:33

Pironity
Зарегистрирован: 2018-02-18
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Не понял многопоточность (threading)

FishHook
Вам надоело общаться по человечески?Слушайте, вас труднго понять. Вы пришли на форум с проблемой “Не понимаю многопоточность”. Ну Ок, давайте пробовать понимать. Вы зачем кривляетесь то, вы хотите мне что-то доказать? А как это решит вашу проблему?
Прошу прощения, я подумал, что приводя аббревиатуры стратегий многопоточности, приведенных в книге, я отвечу на ваш вопрос о:
Как по вашему работает параллельное выполнение ста потоков на только одном ядре процессора?
Если не ответил, то своими словами. Есть 4 стратегии в процессорах интел - дублирование ресурсов, жесткое разделение ресурсов, полное разделение ресурсов и пороговое разделение ресурсов. Все они являются непосредственной частью реализации одновременного исполнения гипертрединга.
Если речь о старых процессорах, там реализуется SIMD - один реальный поток с несколькими потоками данных.

Отредактировано Pironity (Фев. 18, 2018 19:18:37)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version