Компиляция под определенную распределенную систему.
От: romca  
Дата: 14.11.12 13:21
Оценка:
А возможно такое: List<Data> и хочешь 100 пользователей онлайн, хочешь 1000000. Т.е. совсем спрятать распределенную систему от программиста, будет автоматом компилироваться под определенную распределенную архитектуру и при необходимости автоматом перекомпилироватся при ее изменении
Re: Компиляция под определенную распределенную систему.
От: 0x7be СССР  
Дата: 14.11.12 13:26
Оценка: 1 (1) :)
Здравствуйте, romca, Вы писали:

R>А возможно такое: List<Data> и хочешь 100 пользователей онлайн, хочешь 1000000. Т.е. совсем спрятать распределенную систему от программиста, будет автоматом компилироваться под определенную распределенную архитектуру и при необходимости автоматом перекомпилироватся при ее изменении

А ещё лучше вообще спрятать систему от программиста... он деньги просто так получает, а система сама пишется
Re[2]: Компиляция под определенную распределенную систему.
От: romca  
Дата: 14.11.12 13:36
Оценка:
Здравствуйте, 0x7be, Вы писали:

0>Здравствуйте, romca, Вы писали:


R>>А возможно такое: List<Data> и хочешь 100 пользователей онлайн, хочешь 1000000. Т.е. совсем спрятать распределенную систему от программиста, будет автоматом компилироваться под определенную распределенную архитектуру и при необходимости автоматом перекомпилироватся при ее изменении

0>А ещё лучше вообще спрятать систему от программиста... он деньги просто так получает, а система сама пишется

Это я упростил просто, смысл — возложить задачу маштабирования на плечи системы при сохранении удобного для программиста api. Компилятор же справляется с оптимизацией кода для процессора, почему так же не далать в распределенных системах?
Re[3]: Компиляция под определенную распределенную систему.
От: Carc Россия https://vk.com/gosha_mazov
Дата: 14.11.12 13:39
Оценка:
Здравствуйте, romca, Вы писали:

R>Здравствуйте, 0x7be, Вы писали:


0>>Здравствуйте, romca, Вы писали:


R>>>А возможно такое: List<Data> и хочешь 100 пользователей онлайн, хочешь 1000000. Т.е. совсем спрятать распределенную систему от программиста, будет автоматом компилироваться под определенную распределенную архитектуру и при необходимости автоматом перекомпилироватся при ее изменении

0>>А ещё лучше вообще спрятать систему от программиста... он деньги просто так получает, а система сама пишется

R>Это я упростил просто, смысл — возложить задачу маштабирования на плечи системы при сохранении удобного для программиста api. Компилятор же справляется с оптимизацией кода для процессора, почему так же не далать в распределенных системах?

Курить до просветления Андрея Александресу...
Aml Pages Home
Re[3]: Компиляция под определенную распределенную систему.
От: 0x7be СССР  
Дата: 14.11.12 14:07
Оценка: 1 (1) +1
Здравствуйте, romca, Вы писали:

R>Это я упростил просто, смысл — возложить задачу маштабирования на плечи системы при сохранении удобного для программиста api. Компилятор же справляется с оптимизацией кода для процессора, почему так же не далать в распределенных системах?

Потому что это сложнее, чем оптимизировать однопоточный код. Сейчас даже с автоматическим параллелизмом в рамках одного компьютера не разобрались настолько, что бы абстрагировать программиста от него. Максимум что есть — это удобные инструменты. То же самое и с распределенными системами.
Re: Компиляция под определенную распределенную систему.
От: Mazay Россия  
Дата: 14.11.12 14:33
Оценка:
Здравствуйте, romca, Вы писали:

R>А возможно такое: List<Data> и хочешь 100 пользователей онлайн, хочешь 1000000. Т.е. совсем спрятать распределенную систему от программиста, будет автоматом компилироваться под определенную распределенную архитектуру и при необходимости автоматом перекомпилироватся при ее изменении


Кури shmem: www.sandia.gov/~rbbrigh/papers/shmem-mpi.pdf

This library allows user to write parallel applications using a shared-memory
programming model, where all the processes can operate on a globally accessible
address space
. In order to support this programming model, the Shmem routines
supply remote data transfer, work-shared broadcast and reduction, barrier
synchronization, and atomic memory operations. Furthermore the Shmem routines
minimize the overhead associated with data passing requests, maximize bandwidth,
and minimize data latency. The Shmem library can be used in conjunction with or as
a replacement for message passing routines (e.g. MPI), so that developers can
optimally mix message-passing and shared-memory programming models in the same
application.


Только сильно не возбуждайся — нет в жизни счастья.
Главное гармония ...
Re: Компиляция под определенную распределенную систему.
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 14.11.12 18:45
Оценка:
R>Т.е. совсем спрятать распределенную систему от программиста, будет автоматом компилироваться под определенную распределенную архитектуру и при необходимости автоматом перекомпилироватся при ее изменении

Облачные вычисления очень похожи на это.
Re: Компиляция под определенную распределенную систему.
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 14.11.12 18:55
Оценка:
Здравствуйте, romca, Вы писали:

R>А возможно такое: List<Data> и хочешь 100 пользователей онлайн, хочешь 1000000. Т.е. совсем спрятать распределенную систему от программиста, будет автоматом компилироваться под определенную распределенную архитектуру и при необходимости автоматом перекомпилироватся при ее изменении


На уровне современных мейнстримовых языковы — нельзя. А если получится, то api будет настолько убогим, что проще будет отказаться от такой абстракции и писать руками.
Re[4]: Компиляция под определенную распределенную систему.
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 15.11.12 07:51
Оценка: 3 (1)
Здравствуйте, Carc, Вы писали:

C>Курить до просветления Андрея Александресу...


Сам Александреску сейчас курит другой язык. Вон какой обкуренный на свежем видео.
Re: Компиляция под определенную распределенную систему.
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 15.11.12 07:57
Оценка:
Здравствуйте, romca, Вы писали:

R>А возможно такое: List<Data> и хочешь 100 пользователей онлайн, хочешь 1000000. Т.е. совсем спрятать распределенную систему от программиста, будет автоматом компилироваться под определенную распределенную архитектуру и при необходимости автоматом перекомпилироватся при ее изменении


В некоторых узких областях такие штуки бывают. Например, есть такая штука как DVM, где в исходник на Си или Фортране добавляется немного аннотаций ("этот массив распределить, этот сделать локальным на каждом узле, этот цикл можно параллелить"), транслятор его превращает в код с использованием MPI, который прозрачно распределяется по кластеру из сотни процессоров. Но это лишь для рассчетных задач с большими массивами работает, и то нужно все же думать над архитектурой.
Re[5]: Компиляция под определенную распределенную систему.
От: Carc Россия https://vk.com/gosha_mazov
Дата: 15.11.12 08:20
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Здравствуйте, Carc, Вы писали:


C>>Курить до просветления Андрея Александресу...


DM>Сам Александреску сейчас курит другой язык. Вон какой обкуренный на свежем видео.

Угу, только я когда таки успешно поотлаживал код Александреску, начались проблемы с нарконтролем, где беру

А если кроме шуток, то Александреску конечно замечательная вещь, читать обязательно — в нужном направлении мозги ставит. Главное потом уметь этим пользоваться к месту, а не лепить где ни попадя. Чего и я конечно не избежал по молодости. Вот скажите, на кой фиг было писать файл для работы с ини-файлами на шаблонах!?! И ведь до сих пор ведь работает, и в более чем живом проекте. Разве что никогда в этот класс не заглядываю (капли успокоительные приходится пить потом )

А по делу Александреску замечательная весчь!!!
Aml Pages Home
Re: Компиляция под определенную распределенную систему.
От: Константин Черногория  
Дата: 18.11.12 11:17
Оценка:
R>А возможно такое: List<Data> и хочешь 100 пользователей онлайн, хочешь 1000000. Т.е. совсем спрятать распределенную систему от программиста, будет автоматом компилироваться под определенную распределенную архитектуру и при необходимости автоматом перекомпилироватся при ее изменении

Называется Terracotta DSO, делает примерно шо что вы хотите.
Правда оно nолько для платформы Java.
Прячет не совсем полностью: нужно размечать какие объекты локальные, какие в кластере.
По слухам работает OK, сам не использовал.
Re: Компиляция под определенную распределенную систему.
От: Lazin Россия http://evgeny-lazin.blogspot.com
Дата: 26.11.12 13:05
Оценка:
Здравствуйте, romca, Вы писали:

R>А возможно такое: List<Data> и хочешь 100 пользователей онлайн, хочешь 1000000. Т.е. совсем спрятать распределенную систему от программиста, будет автоматом компилироваться под определенную распределенную архитектуру и при необходимости автоматом перекомпилироватся при ее изменении


Скорее нет чем да.
Проблема в том, что пространство для принятия решений здесь очень велико. Начнем с того, что в твой List<Data> вносят изменение один или несколько юзеров, что должно произойти дальше? Все машины стоят в одной стойке и вообще на одном свитче, в одном датацентре, в нескольких датацентрах связанных через WAN? В разных случаях, при разных требованиях к системе возможны разные решения, от 2PC, до gossip протоколов. Что важнее, целостность данных, или латентность, писать сразу во все узлы, на которых есть копия List<Data>, либо распространять изменения асинхронно? Что должно происходить при отказах узлов, отказ в обслуживании или можно в этом случае допустить появление немного разных версий List<Data> у разных пользователей? Что делать в случае, если 2 датацентра вдруг, оказались изолированы друг от друга, на какое-то короткое время, отказывать в возможности изменить List<Data>, либо опять же допустить расхождение данных? Как обеспечивать реконфигурирование системы при отключении/включении узлов.
Компилятор не примет все эти решения за вас, во первых, у него нет данных, во вторых, от того, какие свойства имеет система зависит логика приложения. Если распределенная система поддерживает целостность данных, то у приложения будет одна архитектура, если она жертвует целостностью данных в обмен на другие свойства, у приложения будет другая архитектура.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.