Высокая производительность

индекс
86,54

Архитектура Pinterest – 18 миллионов посетителей, 10-кратный прирост, 12 сотрудников, 410 ТБ данных перевод

История Pinterest очень похожа на Instagram. Феноменальный рост, огромное количество пользователей и хранимых данных, при этом поразительно мало сотрудников. А еще все в облаке.

Действительно, ни Pinterest ни Instagram не сделали больших научных или технологических открытий, но это скорее является следствием простоты использования облачных технологий, нежели признаком заката эры инноваций в Кремниевой Долине (Золотой век Кремниевой долины окончен, и мы танцуем на её могиле – прим. переводчика). Цифры в заголовке и оценки стоимости этих компании настолько велики, что нам кажется, будто бы за ними стоит некий вид технологической революции, обеспечивающей их бурный рост. Однако, эта революция гораздо более искусна – она показывает, насколько легко добиться столь быстрого роста, если вы способны реализовать хорошую идею. Привыкайте. Теперь это норма.
+54
22 мая 2012, 22:11
107
globik 74,6

Команда Microsoft Research побила мировой рекорд по сортировке

На сайте sortbenchmark.org ежегодно проводятся конкурсы по сортировке больших наборов данных. Один из видов соревнований — minute sort, в котором необходимо за минуту прочитать с диска и сортировать как можно большее число записей и сохранить результат в файл. Конкурс проходит в двух категориях — Indy, без ограничений на используемое железо, и Daytona — должны использоваться только обычные компьютеры “из магазина”.

Команде Microsoft Research удалось многократно превысить державшийся с 2009 года рекорд Yahoo в категории Daytona. Их кластер, состоящий из 1033 дисков на 250 машинах, справился с 1401 гигабайтом данных. Это почти втрое лучше результата Yahoo (500 гигабайт), при том, что кластер Yahoo был почти в шесть раз больше (5624 диска на 1406 машинах). Более того, майкрософтовский кластер побил и прошлогодний рекорд в категории Indy (1353 гигабайта).
+61
22 мая 2012, 16:00
30
ilya42 1021,5

Как найти девушку за 250 микросекунд

В отличие от Европы и Америки в России к сайтам знакомств преобладает осторожное отношение. Однако, надежда нажать на волшебную кнопочку и найти себе любовь не гаснет в сердцах многих. И мы должны эту надежду оправдывать. Конечно, сразу найти идеально подходящую “половинку” мы не обещаем, но предложить десятки, сотни или в отдельных случаях тысячи вариантов, отвечающих именно вашим запросам, просто обязаны. Что и делаем, причем очень быстро.

Средний поиск по базе из 11 миллионов анкет, имеющих от 4 до 30 параметров каждая, занимает у нас в среднем 3.5 милисекунды. И при этом кроме поиска демон-серчер «Мамбы» выполняет следующие, в том числе не вполне традиционные задачи:
  • для каждой конкретной анкеты выдает ее место в поиске (каждый пользователь, заходя в свою анкету, видит сообщение «Вы находитесь на N месте в поиске»)
  • выдает конкретную анкету из списка по первичному ключу
  • производит непосредственный поиск анкеты по заданным параметрам

Несмотря на то, что наш поиск с самого начала разрабатывался собственными силами, время от времени возникали мысли использовать что-то уже известное, обкатанное и гарантированно эффективное. Ну, а если мы задумываемся о поиске, первым в голову приходит Sphinx.
+65
21 мая 2012, 11:45
140

Вычисление CRC32 строк в compile-time из песочницы

По своей программистской природе я очень не люблю неоптимальность и избыточность в коде. И вот, читая в очередной раз на работе исходный код Mail.Ru Агента, вновь наткнулся на одну особенность в способе реализации перевода строк продукта на разные языки.

Локализация здесь осуществляется довольно нехитро. Все строки, требующие перевода, оборачиваются в макрос _TR():
wprintf(L"%s\n", _TR("Some translating string"));

Макрос возвращает нужную версию текста в зависимости от текущего используемого языка. Определён он следующим образом:
#define _TR(x) g_Translator.Translate(x)

Здесь происходит обращение к глобальному объекту g_Translator, который в функции Translate() считает в рантайме crc32 от указанной строки, ищет в своей xml-базе перевод с совпадающей контрольной суммой и возвращает его.

Не буду судить насколько такое решение оправдано, но оно проверено временем и показало себя достаточно надёжным. И всё бы ничего, но такое решение не лишено недостатков: по сути, функция делает лишнюю работу — контрольные суммы можно было бы подсчитать один раз на этапе компиляции, и использовать в дальнейшем уже готовые числовые значения. Это также избавило бы от необходимости хранить в исполняемом образе дублирующиеся строки, ведь они уже есть во внешнем xml-файле с переводами.

Немного погуглив по запросу «compile-time crc32» я быстро понял, что задача это не самая тривиальная, а готовых решений мне найти так и не удалось.
+46
16 мая 2012, 19:30
93
Glowfall 43,8

Закон Мура — закон или маркетинговая стратегия?

imageЗакон Мура (Wiki) - эмпирическое наблюдение, изначально сделанное Гордоном Муром, согласно которому (в современной формулировке) количество транзисторов, размещаемых на кристалле интегральной схемы, удваивается каждые 18 месяцев. В 1975 году Гордон Мур внёс в свой закон коррективы, согласно которым удвоение числа транзисторов будет происходить каждые два года.

Гордон Мур огласил свое наблюдение в апреле 1965 года, примерно за три с половиной года до создания корпорации Intel. В августе 1968 года он стал одним из основателей этой компании (оригинал на ixbt). Гордон Мур по сей день является почётным председателем совета директоров Intel.

Исходя из вышесказанного, у меня невольно возникает вопрос: Может быть Гордон Мур вовсе не «предсказал закон», а озвучил стратегию корпораций на ближайшие несколько десятилетий?

+6
14 мая 2012, 10:03
27
Marchevsky 121,9

15 лет назад компьютер Deep Blue обыграл человека в шахматы



Корпорация IBM отмечают ещё один юбилей в своей истории — 11 мая 1997 года компьютер Deep Blue в матче из 6 партий обыграл чемпиона мира по шахматам Гарри Каспарова: дважды победил компьютер, один раз — человек и три партии было сыграно в ничью.

Победа Deep Blue не далась легко IBM — в недрах корпорации еще с начала 1950-х годов прошлого века велись работы по созданию специализированных вычислительных машин и соответствующего программного обеспечения. В 1985 году аспирант университета Карнеги Мелоун Фенг Хсу (Feng-hsiung Hsu) в ходе работы над своей диссертацией построил компьютер для решения шахматных задач, получивший название ChipTest. Его коллега Мюррей Кемпбелл (Murray Campbell), присоединившийся к проекту позднее, вместе с самим Фенгом Хсу были приняты в подразделение IBM Research, занимавшееся разработкой исследовательских инновационных задач. Именно они ответственны за появление проекта Deep Blue, которому в 1989 году оказалось ещё не под силу играть с человеком — тогда Каспаров выиграл. Аналогичная история повторилась в 1996 году, однако уже через год третья версия программы смогла взять реванш, и финальная партия закончилась за 19 ходов — при том, что партии у шахматистов уровня Каспарова длятся около четырёх часов.

Технически Deep Blue представлял из себя компьютер с 32-ядерным (32-node) процессором IBM POWER2, каждый из которых был подключён к восьми специализированным шахматным процессорам VLSI, работающим на серверной платформе RS/6000. Код Deep Blue был написан на С, а в качестве операционной системы использовалась IBM AIX.

После победы Deep Blue был помещён в Смитсоновский музей Вашингтона, положив начало новой эпохе суперкомпьютеров IBM Blue Gene.

Под катом видео, подготовленное IBM к юбилею, в котором Мюррей Кемпбелл — один из первых разработчиков Deep Blue — рассказывает о своём проекте.
+12
11 мая 2012, 23:18
10
jeston 808,9

Активация TRIM в Mac OS Lion [SSD only] перевод

Здравствуйте, уважаемые хабражители.

Этот перевод предназначен в первую очередь для тех, кто уже использует SSD диск и MacOS Lion. Лично я год с хвостиком радуюсь производительности SSD Intel X-25M и отсутствию карусельки смерти чего и вам от души желаю.

До сегодняшнего дня я был уверен, что мой SSD работает на 100% своих возможностей. Но не тут-то было! Если вы купили свой яблочный компьютер без SSD, то есть из магазина он выехал с обычным HDD, то обещанный во Льве TRIM у вас будет не активен, как оказалось только изначально укомплектованные SSD накопителем компьютеры имеют эту функцию по умолчанию. Проблема, как вы понимаете, в вызывающем вопросы маркетинге компании имеет софтверные корни, а не железные. И на эту подлянку от Apple мистер Грант Пеннэл предлагает свой болт с резьбой.

+35
11 мая 2012, 18:56
135
SeiFeR 48,9

Будущее за микросерверами на MIPS-процессорах

Я очень удивился когда не нашёл на Хабре обсуждение двух взаимосвязанных новостей:
1. «AMD завершила поглощение SeaMicro»;
2. «AMD хочет приобрести MIPS, но сможет ли она опередить Google?».

Вы только представьте, что если AMD действительно купит компанию MIPS Technologies, и по заказу AMD инженера MIPS Technologies перепроектируют 64-х разрядный процессор серии MIPS R1x000 по современным технологическим нормам в 22 нм с использованием всех интеллектуальных разработок от компании SeaMicro. В результате может получиться замечательный энергоэффективный микропроцессор для микросерверов которые тут же начнёт выпускать SeaMicro.
+17
25 апреля 2012, 23:54
15
zboris 19,8

Использование дополнительных инструкций CPU в одной из задач на PHP для ускорения производительности из песочницы

При построении крупных PHP-проектов многие сталкивались с нехваткой производительности, даже на мощных серверах. Даже небольшой участок кода может ощутимо повлиять на весь ресурс в целом: в плане прибыли, и в плане затрат на поддержку и обслуживание данного ресурса. Расскажу Вам мой опыт о нестандартном подходе решения одной задачи.

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

Уже когда все написано, работает, и продолжает дальше разрабатываться, и ни времени, ни бюджета переделывать что-либо – дабы улучшить производительность – нет, а двигаться нужно только вперед, причем как можно быстрее, я получаю очередное задание. Сначала я посмотрел на него как на обычный тикет: вся личная информация пользователя: фамилия, адрес, телефон, идентификационный код – должна храниться в базе в зашифрованном виде, и быть доступна только при запросе с ключами для расшифровки. Так как это мой первый серьезный опыт, связанный с шифрованием данных, я начал искать в гугле возможные пути решения задачи средствами PHP, и, естественно, наткнулся на всем известную библиотеку mcrypt. Не нужно особо много времени, чтобы разобраться, как с ней работать. Библиотека работала – на форумах можно найти много примеров, комментариев, обсуждений. Она показалась мне идеальным вариантом для решения моей задачи, особенно учитывая, что времени было совсем немного.
+50
25 апреля 2012, 23:18
133
dxArtem 11,8

Nvidia для профессиональных 3D приложений

Пол года назад я искал себе видеокарту, на которой я смог бы заниматься 3d моделированием, и рендерингом на GPU. В связи с появлением на рынке большого числе рендеров на CUDA мне не терпелось приобрести видеокарту с поддержкой CUDA, а именно Nvidia.

Как некоторые уже знают, Nvidia выставляет на продажу видеокарты нескольких моделей Geforce, Quadro, Tesla, ION, Tegra. В этом коротком сравнении упустим ION и Tegra, т.к. предназначены для мобильных устройств и слабые по производительности.

Нам нужна мощь!

Nvidia power...

+31
23 апреля 2012, 14:47
64
Marchevsky 121,9