0xd34df00d 15.07.2011 10:41 Azoth_primary

Питон все еще говно, или его интерпретатор уже хотя бы можно дергать из нескольких тредов сразу?

1. gelraen 15.07.2011 10:41 imax

сейчас набижит @uidtko и скажет что надо делать кучку процессов вместо кучки тредов

2. 0xd34df00dgelraen /1 15.07.2011 10:42 Azoth_primary

Посмотрим.

3. ulidtkogelraen /1 15.07.2011 10:42

как будто между этими вариантами есть какая-то принципиальная разница.

4. gelraenulidtko /3 15.07.2011 10:44 imax

да. у тредов общая память, что позволяет работать с объёмными данными из разных тредов без передачи их туда-сюда через ядро

5. nya 15.07.2011 10:44 Gajim

писечку подергай чтоли

6. ulidtkogelraen /4 15.07.2011 10:45 lunatic asylum

shmget(2)

7. ulidtkoulidtko /6 15.07.2011 10:46 lunatic asylum

хотя зачем, mmap(2), MAP_SHARED.

8. 0xd34df00dulidtko /6 15.07.2011 10:47 Azoth_primary

И все нахуй туда класть. Говнище. Кутишные объекты ж напрямую не поддерживают шмем, нужно сериализовать туда-сюда, но зачем? Есть же треды, а ограничения тупого языка не нужны :3

9. gelraenulidtko /6 15.07.2011 10:53 imax

тоже вариант, вобщем-то, но менее удобно чем треды

10. ulidtko0xd34df00d /8 15.07.2011 10:55 lunatic asylum

СЛИШКОМ ДЕДФУТО

Ты как вообще скрещиваешь питон, плюсы и кути? И, главное, зачем?

11. 0xd34df00dulidtko /10 15.07.2011 11:00 Azoth_primary

Через PyQt + рантайм-магию в плюсах. Все выглядит так, будто я в плюсах в рантайме генерю объекты :3
Зачем — для поддержки скриптинга, обв.

12. ulidtko0xd34df00d /11 15.07.2011 11:01 lunatic asylum

тебе в скриптинге всенепременно обязательно нужен мультитрединг?..

13. 0xd34df00dulidtko /12 15.07.2011 11:01 Azoth_primary

Да, я страницы парсю в отдельном треде в рсс-читалке.

14. ulidtko0xd34df00d /13 15.07.2011 11:01 lunatic asylum

скриптами?

15. 0xd34df00dulidtko /14 15.07.2011 11:04 Azoth_primary

В том числе. Бывают тупые скрипты, которые просто CSS-селекторы отдают, и тогда я парсю из плюсокода, но все равно в отдельном треде, а могут быть умные, которые парсят все сами.

16. analizer 15.07.2011 11:05 mcabber

предвижу я тёмной стороны искушение в вопросе этом.

17. analizerulidtko /6 15.07.2011 11:06 mcabber

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

18. 0xd34df00danalizer /16 15.07.2011 11:06 Azoth_primary

Хочу расширить я зону охвата мозгов юных неокрепших личкрафтами.

19. 0xd34df00danalizer /17 15.07.2011 11:06 Azoth_primary

Typical python-dev.
Ну и вообще $anything-obsessed-dev.

20. ulidtkoanalizer /17 15.07.2011 11:07 lunatic asylum

вопрос был о принципиальном различии параллелизма несколькими тредами и несколькими процессами. Я подчёркиваю, о принципиальном различии (коего нет).

21. analizerulidtko /20 15.07.2011 11:09 mcabber

я тебе про принципиальное различие между тредами и процессами и описываю. взаимосвязанные объекты теряют связь между собой если запихивать их в шмем.

22. analizer0xd34df00d /18 15.07.2011 11:09 mcabber

растление малолетних личкрафтами, в составе группы лиц, по предварительному сговору? ты злодей.

23. ulidtkoanalizer /21 15.07.2011 11:10 lunatic asylum

тогда мапишь ещё немножко виртуальной памяти — и всё у тебя хорошо. Ещё раз повторю: принципиальной разницы нет.

24. ulidtko 15.07.2011 11:13 lunatic asylum

В общем так.
1) GIL из питона убирать никто не собирается, повидимому. Это неизбежная необходимость.
2) На время блокирующего IO, тяжёлых FFI вызовов (numpy, всевозможный image processing) GIL отпускается. То есть, одновременно не могут выполнятся _питоновые байткоды_, но всё что бегает под ними — обычно может.
3) Левые треды эмбеддящего интерпретатор приложения, естественно, никоим образом не затрагивают GIL. Если тред не делает вызовов python api — для GIL этого треда нет.

25. ulidtkoulidtko /24 15.07.2011 11:14 lunatic asylum

хм, нет, вру. Unlaiden Shallow что-то там пытаются выпилить из 2.x ветки. Всё ещё work in progress.

26. 0xd34df00danalizer /22 15.07.2011 11:16 Azoth_primary

R!

27. 0xd34df00dulidtko /23 15.07.2011 11:16 Azoth_primary

Да вообще все данные в один большой кусок шмема запихни, чо. Зато GIL.

28. 0xd34df00dulidtko /24 15.07.2011 11:17 Azoth_primary

1. ... вызванная криворукостью Гвидо и прочих.
2. А тут над ними.
3. А у меня меин-тред, к сожалению, делает. :(

29. ulidtko0xd34df00d /28 15.07.2011 11:19 lunatic asylum

Ну вот не надо о криворукости. Я вон тут уже вычитал, как в том же перле сделан «мультитрединг».

30. 0xd34df00dulidtko /29 15.07.2011 11:20 Azoth_primary

А никто не говорил про пёрл.

31. ulidtko0xd34df00d /30 15.07.2011 11:23 lunatic asylum

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

%%в перловом «мультитрединге» нет shared memory, вообще. память приватная и копируется при создании треда%%

32. ulidtko0xd34df00d /28 15.07.2011 11:24 lunatic asylum

кстати, ты не начинал ещё думать в сторону выставления сервисов D-Bus? :3

33. analizerulidtko /31 15.07.2011 11:24 mcabber

оценку человекочасов предоставь тому кто их потратить. и прекрати тыкать перлом, ты в приличном обществе как-никак

34. 0xd34df00dulidtko /31 15.07.2011 11:25 Azoth_primary

У хаскелеёбов в этом плане хороший подход: париться и страдать должны разработчики компиляторов, а не пользователи. И это хорошо.

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

35. ulidtkoanalizer /33 15.07.2011 11:26 lunatic asylum

а, простите.
Сейчас поищу, где в интерпретаторах как сделана синхронизация.

36. 0xd34df00dulidtko /32 15.07.2011 11:26 Azoth_primary

Начал, чо-то выставляется даже, но я слабо представляю, зачем, и чо дальше с этим делать.

37. 0xd34df00dulidtko /35 15.07.2011 11:26 Azoth_primary

Судя по /1 и тому, что Гелраен — рубиёб, поищи в рубях.

38. analizerulidtko /35 15.07.2011 11:26 mcabber

в интерпретаторе эрланга, например. нет?

39. ulidtkoanalizer /38 15.07.2011 11:27 lunatic asylum

эрланг не подходит, лол.

40. analizerulidtko /39 15.07.2011 11:28 mcabber

для чего не подходит?

41. 0xd34df00dulidtko /39 15.07.2011 11:28 Azoth_primary

Поцчему?

42. ulidtko0xd34df00d /41 15.07.2011 11:28 lunatic asylum

потому что зелёные треды же, ну.

43. 0xd34df00dulidtko /42 15.07.2011 11:29 Azoth_primary

Што.

44. gelraenulidtko /42 15.07.2011 11:30 imax

хуя, оно вполне и на smp паралелится

45. ulidtko0xd34df00d /43 15.07.2011 11:30 lunatic asylum

ну, там свой планировщик же. В котором можно обеспечить любой желаемый уровень атомарности; в итоге синхронизация получается совсем нахаляву.

46. gelraen0xd34df00d /37 15.07.2011 11:31 imax

из живых интерпретаторов native threads умеет только jruby

47. 0xd34df00dulidtko /45 15.07.2011 11:31 Azoth_primary

Ну и что?

48. ulidtko0xd34df00d /37 15.07.2011 11:31 lunatic asylum

в рубях тоже GIL :cf:

49. ulidtko0xd34df00d /47 15.07.2011 11:32 lunatic asylum

ну и то, блеадь. Зделал в планировщике incref/decref атомарно — и уже синхронизировать подсчёт ссылок не нужно.

50. gelraenulidtko /48 15.07.2011 11:33 imax

в jruby, емнип, нет. а reference implementation вообще не умеет порождать треды

51. 0xd34df00dgelraen /50 15.07.2011 11:34 Azoth_primary

Нет тредов — нет проблем.

52. ulidtkogelraen /50 15.07.2011 11:34 lunatic asylum

да, ты прав.
> JVM-based equivalents of these languages (Jython and JRuby) are pure Java applications, so they don't have any limits on threading.
http://en.wikipedia.org/wiki/Global_Inte...

53. ulidtko0xd34df00d /51 15.07.2011 11:35 lunatic asylum

кстати вот, да.

54. gelraen0xd34df00d /51 15.07.2011 11:35 imax

ага, и scalability на N процессоров тоже нету, ага.

55. ulidtkogelraen /54 15.07.2011 11:36 lunatic asylum

multiprocessing... /._.\

56. analizer0xd34df00d /51 15.07.2011 11:36 mcabber

нет питона — нет проблем. зато есть треды, проверка типов на этапе компиляции, производительность и экономия ресурсов.

57. gelraenulidtko /55 15.07.2011 11:36 imax

да, я так и выкручивался когда надо было, благо данных не сильно много надо было между ними гонять.

58. 0xd34df00danalizer /56 15.07.2011 11:37 Azoth_primary

Это ты щас про плюсы сказал про проверку типов?

59. analizer0xd34df00d /58 15.07.2011 11:38 mcabber

да. не знаю как дело обстоит в этих ваших кутях, а у меня скомпилировалось — значит работает. ... ну или сразу сегфолтится.

60. 0xd34df00danalizer /59 15.07.2011 11:43 Azoth_primary

Ок-ок.

61. ulidtko0xd34df00d /51 15.07.2011 11:47 lunatic asylum

я бы назвал нативные треды самой коварной практикой в погромизме.
Новичкам при знакомстве с тредами обычно всё очень красиво и понятно — ну хуле, вот выполняется, и одновременно там выполняется. При этом строчки кода и даже простые выражения воспринимаются как атомарные операции. И только потом, когда написано уже дохуя, начинаются непонятные глюки и дедлоки. Отлавливать их — одно сплошное удовольствие; при этом ты один-на-один с кодом. Никаких автоматических средств. Только код, красиво разложенный по красивым тредам с красиво проглядывающим сквозь строчки тролфейсом.
Ряд нетривиальных подводных камней в синхронизации — плата за иллюзорно красивый мультитрединг. Асинхронный код полущ.

62. analizerulidtko /61 15.07.2011 11:49 mcabber

здесь новичков нет. здесь люди в уме дебажат программы на сотню потоков.

63. ulidtkoanalizer /62 15.07.2011 11:50 lunatic asylum

все ошибаются, все. Постоянно.

64. analizerulidtko /63 15.07.2011 11:51 mcabber

ок, если тебя это парит — бросай программирование. иди туда где ошибиться нельзя. например, в сапёры, больше одного раза не ошибёшься.

65. ulidtkoanalizer /56 15.07.2011 11:51 lunatic asylum

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

66. 0xd34df00dulidtko /65 15.07.2011 11:52 Azoth_primary

Да, столько неквалифицированной рабочей кодерской силы пропадает.

67. ulidtkoanalizer /64 15.07.2011 11:52 lunatic asylum

лучше пойду в профессиональные тролли, там хоть научат, как любую ошибку выдать за намеренные манипуляции окружающими.

68. 0xd34df00dulidtko /67 15.07.2011 11:53 Azoth_primary

Анус себе выдай, ПЕС.

69. ulidtko0xd34df00d /66 15.07.2011 11:53 lunatic asylum

а сколько КВАЛИФИЦИРОВАННОЙ рабочей кодерской силы КОМПИЛИРУЕТ ПЛЮСОКОД ПО ТРИ РАЗА В ДЕНЬ АРРРГХХХХ!!!
бугурт.

70. 0xd34df00dulidtko /69 15.07.2011 11:55 Azoth_primary

Мало. Они его чаще компилируют.

71. ulidtko0xd34df00d /70 15.07.2011 11:56 lunatic asylum

да, я знаю. И дольше. Намного дольше.

И рефакторят, и читают угловые скобки, и пишут эксплиситные копи-конструкторы. Блядь, блядь, блядь. Аргх.

72. utros 15.07.2011 15:09 Adium

ШТО

Do you really want to delete ?