Switch lang: Русский \ English

Products AcapellaSoftware

CPVM - Cloud Parallel Virtual Machine

CPVM - it's a cloud computation system.

PaaS offer contain three components:

  1. Distributed coordination system, runtime
  2. Distributed storage TVM/AS and IO controllers. Optionaly FS and IO service-adaptors for work with popular databases
  3. Distributed system PTS (exist as separated service and tool and as additional part of CPVM)

This cloud runtime can automaticaly make for you plain code parallel form.

Big part of work perform when user execute the modul tests of code.

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

Основные применения:

  • обработка больших данных (загрузка, обработка, выгрузка результатов, повторные прогоны)
  • сложная потоковая обработка данных в стиле DataFlow с активным IO (это другой use case)
  • сложные распределенные server-side бекенды
  • подготовка алгоритмов для выгрузки через кодогенерацию в другие рантаймы и кластеры

    мы, например, генерируем код даже для FPGA

Код для CPVM можно писать на многих языках, и запускаться они будут во внешних вычислителях. Либо на lua для запуска в виде доверенных фрагментов. Про типы вычислителей можно отдельно почитать в документации.

PTS - Programm Transformation System

PTS это сервис трансформации кода. и сервис оптимизации графа трансформаций.

Эта система решает достаточно сложную задачу:

Совместно с CPVM PTS должен найти для кода проекта оптимальное разбиение (или объединение) семантических конструкций на фрагменты таким образоом, чтобы для типовых данных распараллеливание было максимально возможным.

Поясню на простом примере:

Если писать программу на языке Erlang или Go и каждое маленькое действие "бездумно" выделять в "процесс", то работая в рамках эффективной VM рантайм Erlang или Go всё же с "малыми" накладными расходами будет вычислять результат т.к. а) он для этого предназначен б) это происходит в рамках одного компьютера. Но наклдные расходы на такую работу для малых операций все же будут велики. В реальности программист сам пытается найти ту грань, когда выделять в процесс работу а когда нет. Это стоит ему много сил. В "обычных" языках программирования очень трудно писать программу с пятью и более пулами потоков. кроме того проект уже не выглядит единым. он выглядит как несколько взаимодействующих программм и в нём сложно разобраться.

Вот эту работу и выполняет PTS.

PTS берёт информацию о статистике и зависимостях фрагментов кода из базы CPVM и переразбивает фрагменты иначе.

CPVM измеряет и новые версии кода.

Это позволяет PTS провдить непрерывную оптимизацию графа кода на предмет гранулярности.

а CPVM в то же время делает оптимизации по ЯПФ системы.

SmartFlow — auto DataFlow for reactive end event system

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

CPVM для поиска звисимостей должна создать максимально изолированную среду. И в этом случае есть сложности с вводом-выводом.

Те кто стороил DataFlow для своих нужд понимают сложности потоковой обработки.

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

SmartFlow - это продукт, который использует аналитическую мощь CPVM, чтобы описанный простым скриптом алгоритм "превратился в параллельный dataflow" а пользователь мог транзакционно с ним взаимодействовать с целью ввода-вывода, обрабатывать свои потоки информации

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

Web GUI - система компонентов для web приложений.

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

web gui (название бы надо) решает очень важную на сегодняшний день проблему.

Вы создавали компоненты для Web? если да, то скорее всего под какой-то фреймворк. и пользовать им смогут только те, кто выбрал также данный фреймворк.

Чтобы расширить список пользователей вашего компонента во много раз он должен уметь работать в разных стилях:

  • подключаться в разметку на сервере, например, серверный шаблонизатор
  • подключаться в client-side шаблонизатор , как DOM. так и в строковый
  • компонент легко использовать из чистого JS
  • компонент легко использовать с биндингами

Мы предоставляем Вам каркас который позволит сделать такие компоненты, которые будучи один раз написаны заработают во всех этих сценариях использования. И Это действительно очень удобно.

DT SCS — Sequentionaly Cloud Storage (DT)

DT - имеет формат классического SOA сервиса.

По сути это большое распределенное сбалансированное дерево. Предназначен для построения больших индексов разных данных. Например вы сами можете использовать его чтобы сделать map reduce ваших данных, без использования всяких Hadoop. Riak делает map-reduce на такой манер.

Или вы можете действительно сделать индекс ваших даннных чтобы по нему быстро что-то искать. например геолокацию или сервисы транспортной инфраструктуры...

Подобная функциональность сегодня есть в очень ограниченном виде, но она очень востребована. Если разобраться в возможностях и способах использования данного сервиса - многие задачи становятся проще.

HMO (FPGA tool) - Hardware Multicore Optimizer

Это наш экспериментальный проект. Я люблю микрочипы и FPGA за их гибкость и возможности для творчества.

Я утверждаю

Результаты распараллеливания систем в CPVM можно использовать для генерации кода для других систем. И даже решил попробовать сделать это для FPGA.

Представляете как было бы здорово:

  • пишете какой-то алгоритм на lua
  • возможно используя мощные уже параллельные библиотеки CPVM
  • код простой без выкрутасов - в лоб
  • cpvm все это параллелит, находит точки разбиения на фрагменты (с помошью PTS)
  • находятся все скрытые зависимости по данным и вот в CPVM собралась вся информация, пока вы делали тестовые прогоны
  • Вы генерируете прошивку из нскольких soft-core для FPGA
  • каждый doft-core умеет выполнять фрагмент и общаться с соседями
  • HMO генерирует dataflow для этих ядер так, чтобы ЯПФ на него ложился и вы автоматом получатете "параллельную версию вашего плоского алгоритмав нутри FPGA кристалла! "

Мне очень нравится, что все gate fpga запитаны напряжением одновременно и работают абсолютно адновременно. Когда мы делали CPVM , легковесные потоки и диспетчеризацию... все это было от "бедности". а тут - вся полнота возможностей.

только места не много :)

Сейчас уже готово soft-core, исполняющее байт код lua и мы работаем над транформацией проекта в чип.

Comments

Comments powered by Disqus
Skip to main content