Date: Feb. 5th, 2006 20:08 (UTC)
From: [identity profile] cyberzx.livejournal.com
а что там в двух словах?
а то у меня PowerPoint отсутсвует

Date: Feb. 5th, 2006 20:32 (UTC)
From: [identity profile] aruslan.livejournal.com
Тим рассказывает, как фронтьер сильных вычислений в лице геймдев индустрии подомнёт под себя Яндекс с Гуглем и к 2009 году получит >1TFLOPS непрерывно в качестве бесплатного приложения к скринсейверу на HD проекторе.
Но счастье будет небесплатным, а в виде 20+ cores, 80+ threads.
И как жить с этим, программируя на C++ нельзя.

Объясняется, что язык должен быть lenient (non-strict, насколько я понял - в обсуждении на Lambda-the-Ultimate ссылку дают, id90 - туда же, -- компилятор имеет право редуцировать жадно, если это допустимо; для lazy - явные suspend/eval), чисто функциональный но в возможностью аннотирования side effects, полностью GC, с аккуратно прибитой exception моделью в стиле C#/Java по поводу операторов языка (доступ к элементам массива и т.п.).
Сильная аннотация типов, вплоть до nat(m) - натуральное n<m (для индексации массивов, опять же).

Приводится вот такая табличка:
Game SimulationNumeric ComputationShading
Languages
C++, ScriptingC++CG, HLSL
CPU Budget10%90%n/a
Lines of Code250,000250,00010,000
FPU Usage0.5 GFLOPS5 GFLOPS500 GFLOPS
ParallelismSoftware Transactional MemoryImplicit Thread ParallelismImplicit Data Parallelism


При этом делается упор на то, что большинство вычислений - существенно функциональные (в смысле минимума side-effects) и распределенные (разные - по-разному).

PerformanceWhen updating 10,000 objects at 60 FPS, everything is performance-sensitive
ModularityVery important with ~10-20 middleware libraries per game
ReliabilityError-prone language / type system leads to wasted effort finding trivial bugs
Significantly impacts productivity
ConcurrencyHardware supports 6-8 threads
C++ is ill-equipped for concurrency


Дальше объясняется, почему кривой С++, почему крива потоковая модель, построенная на разделении состояния + мониторах.
В пример ставится shader languages, в которых параллелизм по данным вполне.

Предлагается аннотировать код (чисто функциональный vs side effects), и использовать модель Software Transactional Memory (composable memory transactions) - недетерминистски упорядоченные наборы атомарных операций.

Уф, устал.
Четай Lambda-the-Ultimate уже! :)

Date: Feb. 5th, 2006 20:45 (UTC)
From: [identity profile] cyberzx.livejournal.com
о, спасибо за развернутый ответ
я так понял, что все же не зря начал Haskell учить. хоть вряд ли буду на нем программировать серьезно, но дозу функциональности в кровь пустить не помешает

Date: Feb. 6th, 2006 09:20 (UTC)
From: [identity profile] http://users.livejournal.com/_foreseer/
ну да, к 2009 заткнет за пояс текущий яндекс, да и то только на специальных тестах :) яндекс с гуглем btw параллелизуются на порядки проще. гуглю вон вообще одного mapReduce'a для этого похоже хватает. И код в них проще и его существенно меньше, так шо c++ здесь не проблема. халява в общем :)

Date: Feb. 6th, 2006 11:53 (UTC)
From: [identity profile] vitaly-b.livejournal.com
Самый жуткий код в Unreal - это код, написанный лично Tim Sweeny. Так что его рассуждения о языках программирования весьма опасны :)

Date: Feb. 6th, 2006 12:53 (UTC)
From: [identity profile] vitaly-b.livejournal.com
"Переводя" его доклад: "мы очень плохо написали своё двигло, но по-другому не умеем. Во всё виноват этот мерзкий C++".

Чего только стоит это высказывание: "When updating 10,000 objects at 60 FPS..."
Не делайте так :)

Date: Feb. 6th, 2006 19:50 (UTC)
From: [identity profile] boris-batkin.livejournal.com
С++ очевидно себя изживает. при этом тим доверия не вызывает совсем.

Date: Feb. 9th, 2006 19:17 (UTC)
From: [identity profile] aruslan.livejournal.com
Тим слишком много курит розовых таблеток, такое моё мнение.
А C++ себя изжил, это так.
Расскажи лучше про правильный лисп как-нибудь.

Profile

aruslan: (Default)
aruslan

January 2014

S M T W T F S
   1234
56789 1011
12131415161718
19202122232425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 17th, 2025 00:31
Powered by Dreamwidth Studios