The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"В CPython появится возможность отключения глобальной блокировки интерпретатора"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"В CPython появится возможность отключения глобальной блокировки интерпретатора"  +/
Сообщение от opennews (??), 10-Янв-23, 23:35 
Опубликовано предложение по расширению языка Python - PEP-0703, в котором рассматривается добавление режима сборки CPython без глобальной блокировки интерпретатора (GIL, Global Interpreter Lock). Предложение сводится к оставлению по умолчанию GIL, но добавлению  для его отключения сборочной опции "--without-gil". Спецификация пока находится на стадии черновика, подлежащего обсуждению...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=58459

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 10-Янв-23, 23:35   +/
держи, брат аноним, как это собираются воплощать и чем придется заплатить

Removing the global interpreter lock requires substantial changes to CPython internals, but relatively few changes to the public Python and C APIs. This section describes the required changes to the CPython implementation followed by the proposed API changes.

The implementation changes can be grouped into the following four categories:

    Reference counting
    Memory management
    Container thread-safety
    Locking and atomic APIs

The changes to make CPython thread-safe without the GIL have a negative performance impact on single-threaded performance. The largest impact is due to the reference counting changes, particularly biased reference counting and immortalization. On Python 3.11, implementing biased reference counting and immortalization results in about a 10% geomean regression on the pyperformance suite.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #15, #16, #22

2. Сообщение от pashev.ru (?), 10-Янв-23, 23:43   –3 +/
> При этом отключение GIL может потребоваться в научных вычислениях

В научных исследованиях лучше, конечно, Фортран с ОпенМП.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #7, #23, #34, #47

3. Сообщение от Аноним (3), 11-Янв-23, 00:07   –1 +/
Теоретически это поможет мне с моими 100+ тредами (асинхронными, динамически выделяются по мере необходимости), но жор выглядит неприятно (он и так становится нездоровым). Зависит от того, сколько гигабит можно выжать из текущего однозадачного питона, может оказаться оправдано. Возможность временно отключить в рантайме была бы прикольней.
Ответить | Правка | Наверх | Cообщить модератору

4. Сообщение от noize (ok), 11-Янв-23, 00:09   +/
всё нормально, знающие люди делают. PEP предложен Sam Gross, человеком, который много лет уже пилит nogil.
Посмотрим что в итоге получится. Я ставлю на то, что GIL из CPython никто не выпилит. Скорее всего сделают возможность отключения на уровне интерпретатора флагами запуска
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #10, #96

5. Сообщение от Анонимemail (15), 11-Янв-23, 00:11   –2 +/
Сделали же https://www.opennet.me/opennews/art.shtml?num=58395 который в 10-100 раз быстрее... а здесь решили убить однопоточную производительность (на 10%) - зачем?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6, #49

6. Сообщение от Антон (??), 11-Янв-23, 00:15   +/
Для коммерческой разработки нужно покупать лицензию, подходит для простых скриптов.
Инструмент для узких задач
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #13

7. Сообщение от Аноним (7), 11-Янв-23, 00:26   +4 +/
Лучше, но почему-то эти учёные постоянно хотят писать на питоне с NumPy, Pandas, Jypiter и чтобы всенепременно удобно было. Наверное, они все поголовно тупые. Им бы туда пару паше-вру заслать, чтобы научили уму-разуму.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #9, #14

8. Сообщение от Аноним (9), 11-Янв-23, 00:45   +4 +/
> При этом отключение GIL может потребоваться в научных вычислениях

кто-то должен рассказать научным вычислятелям про fork, clone и mmap.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #68

9. Сообщение от Аноним (9), 11-Янв-23, 00:47   +2 +/
> Наверное, они все поголовно тупые

Ну вообще учёный не обязан быть хорошим системным программистом знающим про fork и виртуальную память.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #31

10. Сообщение от Аноним (9), 11-Янв-23, 00:50   +/
> Скорее всего сделают возможность отключения на уровне интерпретатора флагами запуска

Придётся две версии примитивов синхронизации держать, для thread safe и для однопоточного запуска либо добавлять if что скажется на производительности.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #12

11. Сообщение от Аноним (11), 11-Янв-23, 01:02   –4 +/
Что творят? Хейтеры последний аргумент свой потеряют же! Ну, да, кто-то ещё будет попискивать на счёт синтаксиса)
Ответить | Правка | Наверх | Cообщить модератору

12. Сообщение от Аноним (12), 11-Янв-23, 01:04   +3 +/
Питонистам не привыкать, у них вон, последние 10 лет две версии интерпретатора.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #35, #56, #67

13. Сообщение от Анонимemail (15), 11-Янв-23, 01:20   –2 +/
Так-то коммерческая разработка предполагает зарабатывание денег, поэтому не понимаю аргумента. Или нужна халява?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #17, #32

14. Сообщение от Анонимemail (15), 11-Янв-23, 01:25   +2 +/
Лично я знаю только одного который использует активно Питон, но на пару с Фортраном. Остальные или Матлаб или D (язык такой) или C++ или Java (больше всего).

Выборка у меня конечно не очень.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #33, #40

15. Сообщение от Анонимemail (15), 11-Янв-23, 01:32   +1 +/
>>immortalization

Так и не понял что это?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #18, #55

16. Сообщение от Анонимemail (15), 11-Янв-23, 01:37   +/
После прочтения подумал что однопоток обычно нужен там, где входящие данные могут сильно меняется откуда угодно: может подумать как сделать больше immutable структур? Но про это не слова.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

17. Сообщение от Аноним (17), 11-Янв-23, 01:57   +/
Деньги лучше отдать тем кто распространяет свой продукт без ограничений, а не тем кто этих денег требует.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #36

18. Сообщение от Аноним (18), 11-Янв-23, 02:35   +6 +/
питонисты изобрели бессмертие
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #43, #83, #84, #86

22. Сообщение от Аноним (22), 11-Янв-23, 03:08   –4 +/
Превосходно! Python опять меняет свой API без обратной совместимости. На месте комитета стандартизации, я бы вообще добавлял по 64 ключевых слова в месяц и каждые пол года менял API без обратной совместимости
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #29, #44, #66

23. Сообщение от Аноним (22), 11-Янв-23, 03:10   +1 +/
Почему именно Fortran и OpenMP?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #37, #48, #62

27. Сообщение от Аноним (27), 11-Янв-23, 05:41   –4 +/
На 10% просело, ну ё маё! Всегда же увеличение потоков давало кратный рост производительности.
Ответить | Правка | Наверх | Cообщить модератору

29. Сообщение от Аноним (29), 11-Янв-23, 07:00   +3 +/
> я бы вообще добавлял по 64 ключевых слова в месяц и каждые пол года менял API без обратной совместимости

Уже есть такой язык, rust называется.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

31. Сообщение от Бывалый смузихлёб (?), 11-Янв-23, 07:24   +1 +/
С каких пор любой, кое-как знающий хоть какой-то ЯП вдруг стал учОным ?

Или технари по образованию, с учёной степенью, не имеют права изучать ЯП ?

Это уже к разговору о том, что именно учёные обычно очень неплохо знают свои инструменты в отличие от школьников или студентов вузов / колледжей, которых, почему-то, тоже именуют учеными

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

32. Сообщение от Бывалый смузихлёб (?), 11-Янв-23, 07:27   –1 +/
Именно что зарабатывание денег а не разбазаривание

И, если есть возможность тратить меньше, то зачем тратить больше ?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

33. Сообщение от iiiypuk (?), 11-Янв-23, 07:27   –3 +/
Мог бы не уточнять про D, все его прекрасно знают, потому что на нём написан свободный движок OpenMW, великой TES 3: Morrowind
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #51, #95

34. Сообщение от Аноним (34), 11-Янв-23, 07:46   +3 +/
Нет. Только С с самостоятельно составленным математическим ПО.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #72

35. Сообщение от Аноним (34), 11-Янв-23, 07:48   +/
Очень любят интерпретировать. Или задач серьезных не было, или времени свободного много, или находится тот, кто согласен оплачивать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

36. Сообщение от xrensgory (?), 11-Янв-23, 08:12   +1 +/
Деньги лучше отдать мне
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #50

37. Сообщение от Аноним (37), 11-Янв-23, 08:34   –1 +/
> Почему именно Fortran и OpenMP?

Патамучта так повелось: язык простой, ПОНЯТНЫЙ, для математики применяется издавна.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

40. Сообщение от Аноним (40), 11-Янв-23, 09:00   +/
Девушка работавшая в организации занимающаяся биологическими исследованиями рассказывала что они на R считают и Python

И не в России...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #54, #57

43. Сообщение от Аноним (43), 11-Янв-23, 09:14   +6 +/
После антигравитации. :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #79, #85

44. Сообщение от Дон Педро (?), 11-Янв-23, 09:29   +1 +/
ABI != API
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

47. Сообщение от Аноним (48), 11-Янв-23, 10:45   +/
Только учёные про это почему-то не в курсе. Не в курсе почему?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

48. Сообщение от Аноним (48), 11-Янв-23, 10:45   –2 +/
Потому что легаси днищще.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #52

49. Сообщение от Аноним (48), 11-Янв-23, 10:47   +/
Это левая поставка, а сабж от производителя.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

50. Сообщение от Аноним (48), 11-Янв-23, 10:47   +/
Ого тут у нас богатый буратино, тогда мы выехали за тобой.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

51. Сообщение от Аноним (51), 11-Янв-23, 11:40   +1 +/
Там D давно уже отковыряли
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

52. Сообщение от pashev.ru (?), 11-Янв-23, 11:47   +/
http://git.pashev.ru/mendeleev/tree/mendeleev.f90
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

54. Сообщение от анонна (?), 11-Янв-23, 12:30   +/
R - статистика. Питон - расчет. питон просто удобен простотой написания небольших расчетных скриптов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40

55. Сообщение от Zulu (?), 11-Янв-23, 13:34   +/
> Так и не понял что это?

Это PEP 683

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #80

56. Сообщение от Аноним (56), 11-Янв-23, 13:50   +/
о нет, у питона больше двух интерпретаторов, как же так просчитаться, акелла промахнулся, мамка наругает
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

57. Сообщение от Аноним (57), 11-Янв-23, 14:17   +5 +/
> Девушка работавшая в организации занимающаяся биологическими исследованиями

звучит как "бордель под прикрытием" :-)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40

58. Сообщение от Аноним (58), 11-Янв-23, 14:48   +4 +/
>Скупой платит дважды, тупой - трижды, лох - постоянно.

Отключение GIL приведёт к фрагментации экосистемы на 2 ветки питона, одна с GIL, другая - без него. При этом часть пакетов будут работать только в GILless, а другая - только в GILful, а если программе нужны оба таких пакета одновременно - то изволь поднимать 2 процесса и общаться между ними через сокет. Кому это надо?

Опыт перехода с Python 2 на Python 3 их ничему не научил. Если с 2 на 3 пакеты можно переписать автоматически через 2to3, то с GILful и GILless друг в друга переписать можно будет только ручками. Кто будет это делать?

Нужна ОДНА ветка, в которой одновременно могут сосуществовать пакеты GILless и GILful, при этом чтобы GIL мог включаться и отключаться гранулярно.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #76, #82

59. Сообщение от Аноним (58), 11-Янв-23, 14:54   +/
>Neural network-based AI models expose multiple opportunities for parallelism.
>The GIL makes it difficult to express inter-operator parallelism, as well as some forms of request parallelism, efficiently in Python

Паралелизм нейросетей работает на акселераторах (включая просто CPU, для которого модели тоже JIT-компилируются в нативный код фреймворками) и на уровне питона не виден. Инференс прикладных неигрушечных нейросетей на чистом питоне может выглядит со стороны тех, кто никто нейросетями не занимался, и привлекательно, но будет чертовски медленным и жрущим до полной неюзабельности на практике. Так что этот аргумент сразу ффтопку.

Ответить | Правка | Наверх | Cообщить модератору

60. Сообщение от Аноним (58), 11-Янв-23, 14:58   –1 +/
>Manuel Kroiss, software engineer at DeepMind on the reinforcement learning team, describes how the bottlenecks posed by the GIL lead to rewriting Python codebases in C++, making the code less accessible:

Они бы и так переписали на C++. В Reinforcement Learning код вызывается очень много раз, и любые задержки умножаются на большое число, окупающее временные затраты на переписывание. При этом  в результате получается программа на C++, которую можно запускать на компах без питона и которая работает быстрее и жрёт меньше, что делает переписывание на C ещё более привлекательным.

Напоминаю - Python -  язык для создания ПРОТОТИПОВ. Он ВСЕГДА таким был. Не надо ради гипотетической на практике неприменимой выгоды фрагментировать его экосистему.

Ответить | Правка | Наверх | Cообщить модератору

62. Сообщение от Аноним (62), 11-Янв-23, 15:01   +2 +/
Потому что на Fortran можно написать Scheme, и дальше уже писать нормально.

https://gitlab.com/Lockywolf/schemetran

Есть, кстати, ещё компилятор Схемы в Фортран под тем же названием:

https://gitlab.com/codetk/schemetran

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

63. Сообщение от Омномним (?), 11-Янв-23, 15:09   –1 +/
Подпереть костыль костылём - это мило.
Ответить | Правка | Наверх | Cообщить модератору

65. Сообщение от Аноним (65), 11-Янв-23, 16:11   –1 +/
Почему --without-gil, привычный стиль же --no-gil?
Ответить | Правка | Наверх | Cообщить модератору

66. Сообщение от Вы забыли заполнить поле Name (?), 11-Янв-23, 16:18   +/
Расширения на с что-ли пишешь?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

67. Сообщение от Вы забыли заполнить поле Name (?), 11-Янв-23, 16:21   –1 +/
Из которых 10 лет ветка 2 не развивалась
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #81

68. Сообщение от pda (ok), 11-Янв-23, 16:24   +2 +/
Они уже знают и используют.

"For example, PyTorch exposes a multiprocessing-based API called DataLoader for building data input pipelines. It uses fork() on Linux because it is generally faster and uses less memory than spawn(), but this leads to additional challenges for users: creating a DataLoader after accessing a GPU can lead to confusing CUDA errors."

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

70. Сообщение от Аноним (70), 11-Янв-23, 16:57   –1 +/
Есть такая профессия - питон от гила избавлять.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #77

72. Сообщение от анонна (?), 11-Янв-23, 17:56   –2 +/
си прекрасно подходит для написания математических прог, но более многословен чем питон. хотя.... это от задачи зависит. но простые скрипты с одной формулой расчета проще на питоне написать. а вот комбайны с местом ввода и замены данных(особенно констант и пр) лучше на си.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

76. Сообщение от Вы забыли заполнить поле Name (?), 12-Янв-23, 00:33   +/
Гвидо уже признал, что выпуск 3-ей версии и 2-ой одновременно было ошибкой. Вряд ли они второй раз пойдут по граблям. Это пока всего предложение, можете, кстати, поучавствовать в обсуждении.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58 Ответы: #78

77. Сообщение от Вы забыли заполнить поле Name (?), 12-Янв-23, 00:34   +/
Он есть - анонимам плохо, его нет - анонимам тоже плохо. Вам не угодишь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70

78. Сообщение от Аноним (78), 12-Янв-23, 00:50   +/
Питон сейчас на столько раскручен, что можно в дополнение к существующей, ещё пару несовместимых по синтаксису версий выпустить. И никто не заметит.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76 Ответы: #92

79. Сообщение от амоним (?), 12-Янв-23, 02:02   +/
потому что 42
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43

80. Сообщение от freehckemail (ok), 12-Янв-23, 05:30   –2 +/
Толку-то её читать, если питонисты поголовно грешат тем, что реагируют на баги правкой документации, а не кода.

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

Ну а что взять с питонистов. Язык написан прикладниками для прикладников, и культура там соответствующая.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55

81. Сообщение от Аноним (62), 12-Янв-23, 07:21   +/
10 лет не ломалась совместимость.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67

82. Сообщение от Аноним (62), 12-Янв-23, 07:24   –2 +/
>Отключение GIL приведёт к фрагментации экосистемы на 2 ветки питона, одна с GIL, другая - без него.

И это отлично! Меньше питонистов -- больше писателей на нормальных языках, таких как C++ или Lisp.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58 Ответы: #93

83. Сообщение от Аноним (-), 12-Янв-23, 08:57   +1 +/
Клево, а счастье у них есть?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

84. Сообщение от Аноним (-), 12-Янв-23, 09:10   +/
> питонисты изобрели бессмертие

А счастье у них есть?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

85. Сообщение от Аноним (-), 12-Янв-23, 09:11   +/
> После антигравитации. :)

Да нахрен вашу антигравитацию, варпдрайв дайте.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43

86. Сообщение от Аноним (-), 12-Янв-23, 09:55   +1 +/
> питонисты изобрели бессмертие

Но работает только до выхода следующей версии питона :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

92. Сообщение от Вы забыли заполнить поле Name (?), 12-Янв-23, 22:48   +/
> Питон сейчас на столько раскручен, что можно в дополнение к существующей, ещё
> пару несовместимых по синтаксису версий выпустить. И никто не заметит.

Ну да. Про версию 3 также думали.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78

93. Сообщение от Вы забыли заполнить поле Name (?), 12-Янв-23, 22:50   +/
>>Отключение GIL приведёт к фрагментации экосистемы на 2 ветки питона, одна с GIL, другая - без него.
> И это отлично! Меньше питонистов -- больше писателей на нормальных языках, таких
> как C++ или Lisp.

Знал я одного такого. Притом единственным плюсом С++ он называл возможность написать на нем интерпретатор лиспа.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #82

94. Сообщение от Sem (??), 13-Янв-23, 17:17   +/
А можно хотя бы намек, о чем речь? Что за баги правились исправлением документации?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #98

95. Сообщение от Sem (??), 13-Янв-23, 17:25   +/
Я знаю про D, а вот про OpenMW впервые услышал.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

96. Сообщение от Sem (??), 13-Янв-23, 17:31   +/
Вообще, ты просто новость пересказал :)
А ребята, когда их достали GIL'ом, запилили asycio и сказали: "вот, пользуйтесь, так более правильнее на питоне будет".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

98. Сообщение от freehckemail (ok), 13-Янв-23, 20:33   +/
> А можно хотя бы намек, о чем речь? Что за баги правились исправлением документации?

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

Я попробовал поискать для Вас, зашёл на гитхабе посмотрел. К сожалению, нужных багов под моим основным акком не нашёл. Предполагаю, что нужные баги -- под корпоративными аккаунтами. Имена некоторых из них я ещё помню, но даже если я найду способ поискать по issue этих аккаунтов (доступа к ним уже не имею), то я совершенно точно не помню в каких проектах смотреть.

Иными словами, пруфлинки в данном случае -- это масса геморроя, а проку лично для меня -- нуль. Так что увы. Могу разве что пообещать, что если в ближайшем будущем столкнусь с подобным, то вернусь сюда и оставлю комментарий со ссылкой.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94

104. Сообщение от Аноним (104), 16-Янв-23, 14:07   +/
> Например, из-за использования подсчёта ссылок для изоляции потоков наблюдается заметное снижение производительности однопоточных сценариев (в тестовом наборе pyperformance на 10%)

Куда уже медленее чем стоковый CPython.

Ответить | Правка | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру