Size: a a a

Scala User Group

2020 January 30

Б

Берял in Scala User Group
Oleg ℕizhnik
параллельное вычисление произведения матриц в numpy
похоже на правду, да
источник

λ

λoλdog in Scala User Group
вычисления на видеокартах обычно параллельные
источник

OP

Oleksiy Pavlikovsky in Scala User Group
А знаменитій мап-редюс єто параллелизм без конкаренси?
источник

M

Mikhail in Scala User Group
Oleg ℕizhnik
Акторы - это модель конкурентного исполнения
1. только в рамках отдельно взятого инстанса актора. В данном случае вопрос конкурентности решается в лоб - простым упорядочиванием тех, кто хочет получить ресурс (время работы внутри актора), причем с таким нюансом, что каждый новый вопрошающий не получит время, пока не будут обработаны все предыдущие.

2. сама акторная система может вести себя параллельно - так обычно и бывает, если физических тредов больше одного. А если точнее, то в большинстве случаев поведение смешанное - поскольку на несколько физических тредов мапится гораздо большее кол-во логических тредов.

3. не мешай срезы, все будет логично, не противоречиво и не будет проблем с терминологией
источник

Б

Берял in Scala User Group
Mikhail
1. только в рамках отдельно взятого инстанса актора. В данном случае вопрос конкурентности решается в лоб - простым упорядочиванием тех, кто хочет получить ресурс (время работы внутри актора), причем с таким нюансом, что каждый новый вопрошающий не получит время, пока не будут обработаны все предыдущие.

2. сама акторная система может вести себя параллельно - так обычно и бывает, если физических тредов больше одного. А если точнее, то в большинстве случаев поведение смешанное - поскольку на несколько физических тредов мапится гораздо большее кол-во логических тредов.

3. не мешай срезы, все будет логично, не противоречиво и не будет проблем с терминологией
как-то странно у тебя модель меняет свои свойства в зависимости от железа, на которое она натянута
источник

M

Mikhail in Scala User Group
Берял
как-то странно у тебя модель меняет свои свойства в зависимости от железа, на которое она натянута
модель не меняет. однако когда говорят акторы - имеет ввиду не только сам отдельный актор, а всю систему - и это уже не акторная модель. акторная модель заканчивается как только ты выходишь за рамки своего актора в котором работаешь
источник

Y

Yevhen in Scala User Group
Oleksiy Pavlikovsky
А знаменитій мап-редюс єто параллелизм без конкаренси?
distributed
источник

AV

Abyr Valg in Scala User Group
А, на самом деле идите нахуй. Как и следовало ожидать - кто в лес, кто по дрова:
https://web.mit.edu/6.005/www/fa16/classes/19-concurrency/ - здесь "неправильное" определение
https://www.logicbig.com/quick-info/programming/multi-threading.html - здесь "правильное"

Оригинальный мануал по sys/360 выгуглить не могу
источник

NV

Nikita Vilunov in Scala User Group
Mikhail
модель не меняет. однако когда говорят акторы - имеет ввиду не только сам отдельный актор, а всю систему - и это уже не акторная модель. акторная модель заканчивается как только ты выходишь за рамки своего актора в котором работаешь
а что, разные акторы мапятся на разные тредпулы или что?
источник

AV

Abyr Valg in Scala User Group
Тем не менее, этимология была именно такая - паралелизм - это одновременность + отсутствие _конкуренции_ за ресурс
источник

Y

Yevhen in Scala User Group
Nikita Vilunov
а что, разные акторы мапятся на разные тредпулы или что?
как ты захочешь так и будет вроде
источник

AV

Abyr Valg in Scala User Group
Конкурентность - это одновременность плюс _возможная_ конкуренция за ресурс
источник

M

Mikhail in Scala User Group
Берял
как-то странно у тебя модель меняет свои свойства в зависимости от железа, на которое она натянута
ты же видешь, что я там специально написал "акторная система" во втором пункте
источник

AV

Abyr Valg in Scala User Group
При этом ресурсом может быть что угодно - как хардвер, так и мьютекс
источник

AV

Abyr Valg in Scala User Group
Хотя на самом деле в определении от MIT ничего не сказано про разделяемые ресурсы. На самом деле эта дикуссия меня уже заебла
источник

OP

Oleksiy Pavlikovsky in Scala User Group
Yevhen
distributed
Не всегда. Меня интересуєт именно вопрос "параллелизма без конкаренси". И сразу єто пришл ов голову. Представляю как классический телл паттерн.
фильтратор отправляет на преобразование n месседжей, преобразователь их обрабатівает и теллом отправляет в редюсер у которого (грубо) есть стейт.
(возможно говорю глупости)
источник

M

Mikhail in Scala User Group
Nikita Vilunov
а что, разные акторы мапятся на разные тредпулы или что?
акка использует один тредпул насколько я помню, но ты же в курсе, что в рамках одного тредпула может быть > 1 физического треда? а вобще система исполнения акторов может делать, что угодно - до тех пор, пока соблюдается очередность в рамках отдельно взятого актора, иначе модель перестанет быть акторной)
источник

AV

Abyr Valg in Scala User Group
Параллелизм без конкарренси (в моем понимании, которое упирается в оригинальные определения) - это когда у тебя, к примеру, работают два процесса на двух разных машинах.

Или у тебя работают два процесса на двух разных ядрах.

Или у тебя работают два треда на одном ядре, но это происходит прозрачно для тебя и ядро не является ресурсом. А эти треды не используют мьютексов
источник

AV

Abyr Valg in Scala User Group
Или даже у тебя работают два гринтреда но в твоей модели тредпул под ними не является ресурсом
источник

Y

Yevhen in Scala User Group
Abyr Valg
Параллелизм без конкарренси (в моем понимании, которое упирается в оригинальные определения) - это когда у тебя, к примеру, работают два процесса на двух разных машинах.

Или у тебя работают два процесса на двух разных ядрах.

Или у тебя работают два треда на одном ядре, но это происходит прозрачно для тебя и ядро не является ресурсом. А эти треды не используют мьютексов
зачем мешать паралелизм и дистрибутивность?
источник