orvind ([info]orvind) wrote,
@ 2009-07-06 19:28:00
Previous Entry  Add to memories!  Tell a Friend  Next Entry
Я все больше и больше убеждаюсь в том, что нефть сейчас слишком дешевая. В датацентре стоят супермощные мегасерверы с кучей ядер и объемом оперативки, которого раньше, как казалось, хватит, чтобы вместить Ленинскую библиотеку. Все это обдувается кондиционерами и потребляет чертову кучу энергии. И весь этот суперкомпьютер 99% своего времени сравнивает строки, потому что софт для него написан на питоне, а питон всю свою "динамичность" и прочие удобства реализует через много-много хэш-мапов по строкам. Жутко обидно.
А какие-то умельцы вон реализовали эмулятор x86 на чистой java. И запустили там Doom. То есть исходно с/с++ный Doom, скомпиленный в ассемблер, интерпретируется java'вский эмулятором, который компилится в байткод, компилирующийся обратно в ассемблер. Вот и результат на моем Core 2 Duo E8400 + Geforce 9800GTX+:
doomfps.png - image uploaded to Picamatic
Обратите внимание на желтую циферку в углу. Разработчикам железа еще есть к чему стремиться, а программистам нужно успеть замутить интерпретатор x86 на питоне. Нет, нефть определенно сейчас слишком дешевая.



(12 comments) - (Post a new comment)


[info]_winnie
2009-07-06 09:01 pm UTC (link)
Если в питоне меньше 50% времени - значит программу не ускорить более чем в два раза, избавившись от питона =)

Если в питоне больше 50% CPU-времени - надо как-то реорганизовать программу. Или оптимизировать питон, не считая одно и тоже два (сто два) раза. На питоне легко организовывать всякие кеши, ленивые вычисления на dependency-графах.

Можно выносить в C и другие языки (Ocaml, C++, Java, ...). Питон позволяет легко подсасывать в себя сишные программы кучей способов. Думаю и у нас на серверах это можно сделать не пересобирая C++-сную часть сервера, добавляя .so-модули. Можно через сокеты с другими процессами.

Я вот знаю, что у меня в GUI трёх-строчечная функция пересчёта координат окошек жрёт 30% времени, вот я её на C++ и перепишу. Если не хватит высокоуровневых оптимизаций "не считать невидимое", "не считать на каждом кадре" и тп.


(Reply to this)


[info]_winnie
2009-07-06 09:08 pm UTC (link)
По поводу эмулятора - в теории конечно же лучше писать эмулятор на том же языке, на котором написан интерпретатор Java =) На практике через 20 лет окажется, что пользователю проще в телефон/браузер загрузить эту виртуальную машину, чем разбираться с чем-то вроде нашего тулсета под Wii/DS.

(Reply to this) (Thread)


[info]_winnie
2009-07-06 09:10 pm UTC (link)
Кстати, в Wii кажется есть Opera, значит есть и JavaScript и Adobe Flash? Значит, можно свой тетрис запускать, без C++ :)))

(Reply to this) (Parent)(Thread)


[info]orvind
2009-07-06 09:40 pm UTC (link)
Пользователь про виртуальную машину ничего знать не должен и с тулсетом не будет разбираться. Или ты про пользователя-программиста? Так и ему не нужно разбираться. C++ плох своей относительно плохой переносимостью и относительно скудной стандартной библиотекой? Так расширьте библиотеку и стандартизируйте компиляторы и билд-системы. Вон Gentoo/BSD поставляются же в виде исходников.
Хороший пример - автомобили. Да, пользователь с каждым годом все более ленив. Но автомобили становятся же все более экономичными, не теряя при этом в скорости, экологичности или размере. Главное - чтобы нефть подорожала.

(Reply to this) (Parent)(Thread)


[info]wizzard0
2009-07-07 12:29 am UTC (link)
Performance per watt растет где-то так же, как и у автомобилей.
И ватты растут.

А Programmer performance - падает. ИМХО. Или сильно растут требования к программам (из-за того что софт бегает в сильно гетерогенной среде, плюс, все generic проги давно уже написаны)

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

(Reply to this) (Parent)(Thread)


[info]orvind
2009-07-07 06:44 am UTC (link)
Performance per watt без программистов - ничто. Какая разница, сколько инструкций и каких процессор делает в секунду, если они тратятся впустую?

(Reply to this) (Parent)(Thread)


[info]wizzard0
2009-07-07 07:08 am UTC (link)
Да, так я о этом и говорю

(Reply to this) (Parent)

Железо дешевое
[info]inandout_oflove
2009-07-07 07:37 am UTC (link)
проще потратить денег на железо, чем научить людей экономно расходовать ресурс
по крайней мере, в краткосрочной перспективе точно проще, а далеко у нас редко кто заглядывает
вот и обогревают атмосферу мегакластеры

(Reply to this)


[info]_winnie
2009-07-07 07:35 pm UTC (link)
А когда дизайнеры договорятся о дизайне, и мы реализуем послерелизные фичи, то можно будет расширяться на новых пользователей не железом, а оптимизациями.

(Reply to this) (Thread)


[info]zloe_zlo
2009-07-08 07:09 am UTC (link)
dream on

(Reply to this) (Parent)


[info]_winnie
2009-07-16 04:25 pm UTC (link)
http://nestedvm.ibex.org/

(Reply to this)


[info]_winnie
2009-08-13 04:29 pm UTC (link)
Вау. Оно работает. Прямо в браузере.
http://www.skulpt.org/

(Reply to this)


(12 comments) - (Post a new comment)

Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…