потоки/процессы/треды это да, относительно долго создаются. только перенос чего-там на уровни служб/демонов или даже в ядро ничем особо не поможет ни на армах ни на x86. видеочипы хоть и заточены под массовый параллелизм, но далеко не тот, что нужен процессору общего назначения. если по простому, то и процессоры и ос сейчас мягко говоря уже давно не отвечают современным потребностям т.е. смысл костыли прикручивать это мимиксу стремиться к 0.
Хм. Представляю себе что значит написать базу данных. Одному. Тут неважно - хранятся записи в кластерах, в глобальных переменных или неких стеках. После реализации стандартного функционала любого SQL - останется ли время на что-то еще? Почему бы не начать с того ж мускуля? Сделать таблицу с двумя полями: номер(индекс) и бинарное поле требуемого размера и попробовать создать базу? После отладки - будет ясно, что нужно из методов mySQL реализовывать, что дописывать. ИМХО.
Добавлено спустя 1 минуту 2 секунды: Re: AINIX бесплатная с открытым кодом POSIX ОС для приложений ИИ Да, при нынешних ценах на железо - даже очень мощная машинка будет дешевле времени разработчика.
Дым, идущий из всех устройств в помещении предвещает появление электрика.
Angel71 писал(а):процессоры и ос сейчас мягко говоря уже давно не отвечают современным потребностям т.е. смысл костыли прикручивать это мимиксу стремиться к 0.
Поддерживаю. Тут или сразу затачивать под кластер на стандартной ОС. Или делать свое железо на основе FPGA. Я на прошлой работе участвовал в разработке супер-вычислителя, там для обеспечения скорости на одну FPGA приходилось 8шт DDR3. А таких FPGA было 2шт на плату и платы общались через 10GBit на общем шасси.
Сегодня начал работать сайт http://ainix.org/ На нем я буду постепенно размещать материалы по разработке ОС AINIX. Вначале я изображу графически с комментариями общую структуру ОС. И далее, начну, пожалуй с самого главного - с механизма хранения информации в ОС в виде онтологии, которая называется Model. И лишь после этого начну описывать микроагентов в том варианте, что я планирую в ОС AINIX. Все материалы сайта будут изменяться по мере продвижения разработки.
По работе занимаюсь в том числе железками для параллельных вычислений. Не нужно в ОС придумывать часть заиммающуюся паралеллизмом, жизни не хватит. Зато пары месяцев будет достаточно для изучения механизма MPI, присутствующий и распределяющий вычисления на всех HPC системах.
Добавлено спустя 7 минут 59 секунд: Re: AINIX бесплатная с открытым кодом POSIX ОС для приложений ИИ Небольшая фокусировка по технологиям: если задача требует огромного количества памяти и параллелится алгоритмически, то следует изучить и применять SMP (в рамках одного узла) и MPI для неограниченного распределения среди множества узлов. Если задачу можно уложить в относительно небольшой участок памяти и затем решать ее множеством ядер процессоров, то следует изучать программирование GPU
Спасибо за фокусировку. Я в период с 2000 по 2005 г. написал виртуальную 64 разрядную виртуальную псевдопараллельную машину на 32 разрядном x86 ассемблере. Вся программа использует всего 3 треда. Она у меня устойчиво работает. За основу я брал JVM и .NET с ее MSIL. Но я приложил усилия в направлении параллелизма. И сделал совсем небольшие виртуальные одностековые процессоры (ВП), которые имеют все необходимые атрибуты - прерывания, механизм создания нового ВП и т.д. Каждая команда ВП выполняется приблизительно за 20 машинных команд X86 процессора. В это кол. команд входит и переключение на следующий ВП. Каждый ВП может легко синхронно или асинхронно прерывать другой ВП. Мой сын написал для виртуального ассемблера этих ВП IDE, с пом. которой я написал довольно много кода. Включая довольно сложную систему хранения онтологической информации на HDD. Сейчас есть мысль отрефакторить этот проект, расширив набор команд и переведя его на 64-битный ассемблер (nasm). Специфика проекта AINIX в том, что обычные виды параллелизма тут не очень подходят. Тут практически нет векторных операций. И большие модули довольно легко разбить на небольшие. Сообщения для пересылки между ВП небольшие. Эта система похожа на муравейник с роевым интеллектом, где здание муравейника - это единая онтология и ее ветви, а муравьи - микроагенты, расположенные в ВП. Каждый микроагент будет использовать код для своей работы, находящийся в онтологии. И записывать результаты туда же. Некоторые результаты могут быть кодом для выполнения микроагентами. Нечто подобное есть в функциональном программировании (LISP).
а вот на векторные операции (с плавающей точкой, заданной точности) я бы делал ставку. Если я правильно отслежаваю тенденции то это то куда идет аппаратный параллелизм процессоров. В новых процессорах интела Е5 (Sandy Bridge) появилась новая технология Intel AVX, суть которой в том что теперь за то же количество тактов можно выполнить в 2 раза больше операций векторных. Фишка в одновременном использовании двух регистров по 128 бит (как верхняя и нижняя часть 256 битного регистра). Обещают что дальше будет в 4, 8 раз больше аппаратных операций за такт