ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
2 мая
561446 Топик полностью
Николай Коровин (21.11.2014 23:30, просмотров: 129) ответил Скрипач на А давай! 8)
Пост пятый из стапиццот. "Как делать не надо", или "архитектуры уровня /b". 
Нельзя собирать детей одного возраста и пола вместе. Ни в коем случае нельзя. Подростки всегда структуру складывают патологическую. — А.С. Макаренко
Для начала процитирую тот разбор полётов из прошлого треда, который и породил этот тред.
Буду трогать. Такого рассадника рака в .nix ещё не было. Эталон всего, чего нельзя делать в опенсорсе. 1) Непрозрачная система, которую чуть ли не ломать надо, чтобы получить нормальный контроль. Ковыряют что-то обычно единицы, остальные жрут, что дали. А дали что-то странное, без возможностей даже из категории "Ctrl-Alt-Del", расплывчато выражаясь. 2) Обнаруженные "случайные" закладки. В "типа-как-открытой" оси. Ну, если за это не убивать -- то за что тогда вообще убивать(С)? 3) Для мобильных устройств, работающих от батарейки, сливать на виртуальную машину половину быстродействия -- это совсем не такая же простительная шалость, как для писюков. А для обещанного типа-как-"мира открытого софта", где всё типа-как-пересобирается, как в "настоящем" линухе -- ещё и слабо мотивированная. 4) Типичная картина для современного проговнирования: цена уплачена, результат не получен. Где, блин, портируемость и совместимость? Старые модели новыми версиями оси хрен прошьёшь и новый софт хрен запустишь. За что боролись, ради чего пожертвовали всем? Ммммм? 5) Насчёт защиты то же самое. Несмотря на обёртывание всего в 10 слоёв капусты, это, пожалуй, первый недолинух, в котором массово шатается вирусня. 6) Из-за перекраивания всего, чего можно и чего нельзя, похерены бегамайты существующего софта. Ради чего? Ради нескучных обоев? У меня бубна тянет нормальный софт на третьем пеньке, мобилы давно уже мощнее. 7) Массово хлынувших недопрограммистов никто и никак не "направляет". А "направляются" они очень лего и ненасильственно -- изначально достаточно вбросить нужное количество шаблонов, заготовок и готовых болванок, и основной поток потечёт в сторону некоего заложенного "хорошего стиля". 8) Единственный плюс виртмашины -- то, что после выхода каких-то новых фишек проца старый софт на автомате начинает их использовать -- не реализован. Потому что для этого нужен очень большой набор всяких библиотечных копировщиков, картинкорастягивателей и прочего-прочего, и в п. 7. все должны пользоваться ими, а не циклами for. Набор действительно немелкий, но... Короче, сделать большую либу с такими АПИ было бы куда ловчее, чем загонять всё в виртмашину. Эдакий "драйвер процессора", лол. Что-то по идеологии похожее на старый DDraw.
Ну да это было лирическое отступление, а теперь коснёмся более интересного зверя: OpenCL, как и было обещано. Анонимус, конечно, может совершить много интересных вещей. Анонимус доставлят. Анонимус трудолюбив, когда надо схоронить копипасту, картинки или покарать кого-то за ФГМ. Анонимус упорен и порою даже упорот. Вот только самоорганизовываться, когда пишет код, анонимус не умеет, и нельзя никогда собирать анонимусов одного уровня вместе. Ни в коем случае нельзя. Они всегда структуру складывают патологическую, и когда это стадо структура пишет код, получается нечто, перманентно льющее воду на мельницу ненавистников OpenSource и дискредитирующее идею OpenSource просто-таки навзничь. Дело в том, что в OpenCL... не предусмотрено наличие сразу нескольких целевых устройств. И всё. Это как дом, в котором может быть только один проём. Или окно, или дверь. Или застеклённая дверь. Просто когда это проектировали, дома строить ещё не решались, а стоили только лачуги -- одного проёма с застеклённой дверью хватало. Для вправления мозгов достаточно было бы вспомнить twain: центральная .dll-хаб, к которой с одной стороны подключаются драйверы, а с другой -- прикладные программы. Любая программа может отсканировать любым сканером, не ломая голову, где его дрова раскиданы по системе. Фактически twain -- это просто API, надстройка, расширение системы. Но нееет же, мы пойдём другим путём. Мы просто придумаем сейчас, как нам хоть какой-нибудь мультискаляр скормить программе, а потом уже, когда все достаточно глубоко влипнут в эту систему, может быть, найдём способ повернуть время вспять, послать в прошлое Терминатора и его железной рукой исправить фундаментальные структурные недостатки. И это, заметьте, при достаточно развитых мультискалярах внутри самих процессоров, чего "некоммерческий консорциум Khronos Group" не заметить никак не мог. Реализацию API OpenCL возложили на драйвер NVidia. НА ДРАЙВЕР NVidia. НА ЧЁРТОВ ДРАЙВЕР NVidia!!! Принадлежность тех же людей "второй рукой" к корпорациям-монстрам никого не спасла. Да и не могла спасти: открытые архитектуры получаются кретинскими не потому, что "открытое -- значит, бесплатно сделанное вчерашними студентами", не по причине низкой квалификации, а потому, что анонимусы одного уровня структуру складывают обязательно патологическую. Любому консорциуму нужен свой гениальный RMS, который не даёт свободе переродиться в анархию, открытости -- в бардак, а плюрализму мнений -- в "среднюю температуру по больнице" и полное взаимонепонимание, как здоровые клетки перерождаются в раковые, убивая в итоге весь организм. В итоге, несмотря на то, что некоторые задачи лучше решаются на шейдерах (которых много), а некоторые -- на SSE и подобных расширениях (которым намного проще предоставить пару гигабайт оперативки в пользование), плюс система может иметь вообще несколько разных OpenCL-исполнителей (например, видеокарта и динамически конфигурируемая под задачу ПЛИС), возможность опросить систему на предмет их capabilities и раскидать по разным исполнителям разного рода математику отсутствует. Совсем. Ещё один пример такого же отсутствия элементарного здравого смысла на каком-то прямо-таки детсадовском уровне -- это то, как шина Vesa Local Bus стала "very long bus". "Гениальное" решение сохранить совместимость путём добавления к и без того уже многим поднадоевшей (на фоне общей миниатюризации и освоения многослойных плат) своей длиной шине ISA ещё одного разъёма размером с разъём PCI похоронило эту, во многих отношениях неплохую, разработку, которую можно было спасти, взяв двухрядный разъём наподобие AGP и слегка оптимизировав сигнальные шины. Хотя, может быть, оно и к лучшему: недостатков у неё и так хватало. Да, и это я читал. Но, как гласит анекдот про маленькую внучку Фрейда, "иногда банан -- это просто банан, а сон -- это просто сон". А вещи, которые сейчас нам кажутся очевидными с высоты наших знаний, иногда всё-таки действительно являлись даже в своё время глупыми досадными ошибками, которые можно и нужно было избежать, не суетясь и крепко подумав недельку.