Автор Гілка: Розробка компілятора, цікавить ваша думка.  (Прочитано 3577 раз)

Відсутній eox425

  • Новачок
  • *
  • дописів: 11
  • Карма: +0/-0
Доброго часу дня. Вже другий рік займаюсь розробкою метакомпілятора.
Сенс ідеї полягає у використанні усіх апаратних можливостей комп'ютера (кластера).
Тобто врахування усіх приколів, затримок, фрагментації, розмірів буферів, кешу тощо.
Досить цікава система конвеєрної розробки ПЗ на основі аналізу вхідних даних і динамічного синтезу unit-тестів.
Проект суто "національного" OpenSource характеру.
Причина написання дуже проста - останнім часом все більше і більше зростає тенденція "багатоядерного" програмування,
інструментарій якого має багато побічних ефектів і високу вартість супроводжування, відладки.
Функціональний підхід до рішення цих проблем був використаний у erlang'у, та сlojure (якщо не помиляюсь).
З erlang'ом знайомий уже близько 2 років - чудо-мова, але реалізація не дуже: все ж не всі побічні ефекти ізолюються, а розробники не всемогутні. Далі я познайомився з cuda (добре що на компі був gf8400). cuda, opencl та "друзями".
Що мені подобається у даних технологіях так це приріст швидкодії... однак у них є досить багато недоліків:
1) обмін та завантаження сегментів даних та програм абсолютно не синхронізується що призводить до значних затримок.
2) використання для завантаження та збереження сумісності пропрієтарних відеодрайверів. (no comments)
3) абсолютна відсутність специфікації конкретних архітектур та набору команд графічних процесорів - так званий ptx ассемблер, єдине що зустрічав зі сторони nvidia - decuda як його декомпілятор, але багато опкодів ще не розшифровано.
4) програми що завантажуються в режимі сумісності можуть мати дуже багато "артефактів".

Як я поставився до вирішення вказаних проблем.
В першу чергу розробив семантичне дерево розбору команд процесорів та формування із нього "гіперграфу" програми.
Ідея полягає у визначенні найкращих маршрутів розбору гіперграфу з урахуванням різноманітних навантажень, затримок в залежності від конкретних апаратних особливостей. Для цього використовується нечітка логіка.
Для вирішення проблем "синтезу" алгоритмів та unit-тестів використав генетичний алгоритм в суміші з гетерогенною нейронною мережею (в яку можливо будуть включені джерела шумів для створення "творчого" ефекту).
Це все займається подальшою оптимізацією гіперграфа на основі стандартного набору алгоритмів.
Задумка поки нормально симулюється в matlab'і - 98% сходження в компіляціях та близько 60% творчого ефекту, за основу взятий ідеалізований і386 з 1мб кешу (знаю що нереально). 2% помилки самого компілятора при недостачі стандартної бази алгоритмів, це призводить до певних затримок компіляції інколи досить помітних.
Шукаю зацікавлених розробників для подальшої співпраці - пишіть на мило.
Цікавлять ваші думки.
« Змінено: 2010-08-10 00:33:02 від eox425 »

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Система хороша. Ідея сумістити нейронну мережу з генетичним алгоритмом — дуже хороша. Шкода що я не додумався до цього 15-ть років тому. :-)

Ще не вистачає системи генералізації знань — яка виводитиме певні правила і закономірності. Я читав про систему, яка заново перевідкрила всю алгебру і знайшла пару нових формул намагаючись просто скоротити об’єм знань. Якщо таку систему втулити сюди, то вона зможе вивести певні закони оптимізації, що може значно прискорити і покращити роботу.

Я не знайшов ту систему, про яку я читав, але знайшов подібну старішу: http://dli.iiit.ac.in/ijcai/IJCAI-99%20VOL-2/PDF/018.pdf
[Fedora Linux]

Відсутній Ubuntu_Linux

  • Графоман
  • ****
  • дописів: 275
  • Карма: +0/-0
Щось,  якщо чесно не вловиви суті, можна розповісти більш детально?

Відсутній piktor

  • Видавець
  • *******
  • дописів: 3396
  • Карма: +0/-0
Щось,  якщо чесно не вловиви суті, можна розповісти більш детально?
Та я, чесно, теж не сильно суть вловив, та-й не старався - запитання для тих, хто суть ловить, маючи для цього спеціальні знання.
Всим, хто тоне й не знає,
За що вхопитись,
Хто вже з останніх
Вибився сил:
Попереджаю - я не колода,
Попереджаю - я крокодил.

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Гіперграф програми — це всі можливі траекторії руху даних, щось типу як символьна формула в порівнянні з числовою. Напр. 2+2=>4 — це програма, яка виконується, а X+Y=>Z — це її гіперграф. Якщо ми знаємо що X — це число від 0 до 10 і Y — від 1 до 3, то Z може бути від 0 до 30, тому можна використати один байт для результату і зекономити пам’ять.

Гетерогенна нейронна мережа — нейронна мережа з різними функціями нейронів.

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

Основна проблема ГА — він кожного разу починає все з нуля. Нейронна мережа дозволяє накопичувати і передавати знання між різними запусками ГА.


Довідкова інформація:
Програмне забезпечення інтелектуальних систем
[Fedora Linux]

Відсутній modeus

  • Графоман
  • ****
  • дописів: 278
  • Карма: +0/-0
  • openSUSE 11.4
Кілька років тому зацікавився нейронними мережами. Навіть намагався запрограмувати щось. Але потім зрозумів, що воно занадто складне для мене  ;D

А щодо компілятору, то ідея чудова. Удачі в реалізації.
« Змінено: 2010-08-10 17:39:08 від modeus »
Expectavimus lucem... Et esse tenebrae

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Кілька років тому зацікавився нейронними мережами. Навіть намагався запрограмувати щось. Але потім зрозумів, що воно занадто складне для мене  ;D

Нема там нічого складного. Основна ідея нейронних мереж — при отриманні на вході чогось що частково співпадає з шаблоном X, видати сигнал Y. Сила сигналу Y пропорційна до величини співпадіння шаблону X з вхідними даними. На вихід подається сума всіх сигналів. При навчанні, якщо система видала неправильний сигнал, підкрутити систему з метою підсилення правильного сигналу і послаблення неправильного.

В інтернеті є як зробити нейронну мережу на сірниках: http://gamesanddev.3dn.ru/publ/8-1-0-5
« Змінено: 2010-08-10 22:31:34 від lvm »
[Fedora Linux]

Відсутній eox425

  • Новачок
  • *
  • дописів: 11
  • Карма: +0/-0
Мені дуже приємно що моя ідея зацікавила присутніх тут.
Якщо комусь щось не зрозуміло - я можу докладно пояснити суть в "короткому" варіанті.
Я досить багато часу присвятив вивченню цієї проблеми і просто хочу знайти однодумців.
Реальні результати вже є, і вони підтверджують можливість розвязання поставлених проблем.
...Генералізація знань виконана за принципом зберігання та визначення контексту їх відносності між собою в стандартній бібліотеці (ті ж самі ген. алгоритми та нейромережі) В загальному варіанті система самооптимізується.
Головною задачею на даному етапі розвитку є синтез початкової популяції на "загальній" мові.
Сам початковий код не буде розповсюджуватись ВЗАГАЛІ в звязку з придушенням усіляких "плагіатів" так як ідея досить "весела" і аналогів не має. Пояснення досить просте - а ви бачили в живу перші коди С? Звичайно що це все також "запропрієтизовано" для знищення можливих конкурентів. Я не хочу щоб зі мною тягався НедоСофт і Хфорточки.
Як і всі тут присутні я люто ненавиджу усе це. Моє головне завдання створити максимально наближений до ідеального софт і мені абсолютно не важливо до чого це може призвести - я просто хочу зробити цей світ краще для всіх.
Так як поняття "краще" досить відносне я не сподіваюсь на повне розуміння, але мені потрібна дискусія...
Чекаю відповідей, якщо хочете конкретно взнати що то за муть - пишіть мені на мило, а я вже "популярно" буду пояснювати. Не "зіпсуйте" цю тему так як для мене головне тут дискусія.

Забув сказати саме головне: для тих хто хоче бути в танку продивітся трохи книгу Пані Рутковської про все все все...
Рутковская М., Плинский Л. "Нейронные сети, генетические алгоритмы и нечеткие системы" як завжди "погугліть" djvu
На мою думку це найкраща книга яка описує все про що йдеться в цій темі.

А забув сказати - мені 19 років. =)
« Змінено: 2010-08-11 01:37:29 від eox425 »

Відсутній piktor

  • Видавець
  • *******
  • дописів: 3396
  • Карма: +0/-0
Пані Рутковської
Це не та панянка, що виграла змагання по швидкісному зламуванню Вісти відразу після її виходу?
А забув сказати - мені 19 років. =)
Напевне, марсіанських років.  :)
Всим, хто тоне й не знає,
За що вхопитись,
Хто вже з останніх
Вибився сил:
Попереджаю - я не колода,
Попереджаю - я крокодил.

Відсутній eox425

  • Новачок
  • *
  • дописів: 11
  • Карма: +0/-0
Так це саме та панянка яка розроблює руткіти всіх і всія, неймовірно страждає передозом МатАна в голові
і є розробницею легендарного bluepill кіту для вісти. Найкращий хакер жіночого роду якого тільки можна уявити.
Я знайомий з практично усіма її роботами і вона частково стала натхненням для данної ідеї.
Мені дійсно 19 земних років http://vk.com/eox425
Якщо хочете можете погуглити трохи мій нік.
« Змінено: 2010-08-11 21:30:40 від eox425 »

Відсутній eox425

  • Новачок
  • *
  • дописів: 11
  • Карма: +0/-0
Пройшло вже досить багато часу і що тут немає чого сказати?
Багато хто вважає що я створюю новий велосипед з турбо-надувом...
Багато хто вважає що я не зможу контролювати глибину "самоконтролю" і гомегенність системи....
А що ви думаєте, чи я звернувся не за адресою?

Відсутній nickat

  • Письменник
  • *****
  • дописів: 587
  • Карма: +0/-0
  • Debian user
Пройшло вже досить багато часу і що тут немає чого сказати?
Багато хто вважає що я створюю новий велосипед з турбо-надувом...
Багато хто вважає що я не зможу контролювати глибину "самоконтролю" і гомегенність системи....
А що ви думаєте, чи я звернувся не за адресою?
А ви не думали написати статтю з цієї теми і опублікувати її в науковому журналі?  З одного боку ви захистите себе від плагіату, а з іншого, якщо тема дійсно цікава і перспективна, вам не потрібно буде шукати однодумців по форумах — вони самі вас знайдуть.
Best regards,
nickat

Відсутній eox425

  • Новачок
  • *
  • дописів: 11
  • Карма: +0/-0
Наукові журнали не мій профіль,я вже досить давно працюю над всією цією академічною байдою (5 наукових статей, 3 наукових роботи,2 патенти). Вона абсолютно не захищає від плагіату у наші дні.  :'(
Мене сплагіатили раз 5, по патентах і наукових роботах, тому прийшлось відмовитись від усього цього...

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

Вчора спробував синтезувати абсолютно новий вид нейромережі.
Я знайшов залежності між люським мозком і кількістю шарів персептронів.
Фактично 3 і 5 шарів з практичної точки зору є найоптимальнішими тому що на певних стадіях розвитку так як повторюють структуру мозку... хм, я пішов далі і подумав що тільки от в нейромережі не вистачає системи голографічних (голоморфних) відображень для збереження і "правильного" пошуку/видалення інформації.

Фактично голоморфне відображення є дууууже великим накопичувачем інформації (образів),
принципи його роботи дозволяють зберігати інформацію по нечітким критеріям в усій нейромережі,
не важливо яка її частина вийде з ладу - це лише "розмиє" відображення і видалить певну частину критеріїв,
але в більшості випадків 3-4 критерії із 100 вистачає для розпізнавання даного образу.

Таким чином це щось на зразок суміші Декартового Дерева та гіперграфа, в обох випадках кількість елементів листа та кількість їх звязків може динамічно змінюватись і характерезувати (систематизувати) певні образи що зустрічаются в процесі розвитку мережі, формувати цикли, підсилювачі сигналів і тому подібне.

p.s Це був просто ліричний відступ...
Мене ніхто не шукатиме, я сам маю обрати людей для роботи.
А робота зараз дуже проста: набити базу алгоритмів для їх подальшої обробки.
« Змінено: 2010-08-22 13:03:43 від eox425 »