Pull to refresh
19
0
Send message

Экспериментальное определение характеристик кэш-памяти: практикум

Reading time9 min
Views5.8K
Первая статья об экспериментальном определении характеристик кэш-памяти появилась на свет несколько необычным образом. Играясь с утилитами из lmbench, я получил те самые три графика, и задался вопросом, сколько же информации об исследуемой системе можно из них вытянуть. Определив некоторые характеристики кэша и TLB, я затем задал эти графики студентам как домашнее задание — предвкушая, что им удастся обнаружить что-то такое, что я проглядел. В целом, студенты меня разочаровали, и не заметили даже связь ассоциативности с наклоном ступенек на графике. В конце семестра я собираюсь рассказать им своё решение; а чтобы оно к тому времени не забылось, я написал на скорую руку ту статью.

Затем Yekver предложил мне идею простой программы для Windows, которая определяла бы характеристики кэша автоматически, не требуя ручного анализа графиков. (Тем более, что версии lmbench для Windows не существует.) Для замера времени будем использовать функцию __rdtsc, которая возвращает 64-битное количество тактов с момента последнего сброса процессора. Сначала определим тактовую частоту процессора, замерив на произвольной нагрузке время выполнения и количество потребовавшихся тактов. Затем для расчёта времени доступа к памяти будем делить количество потраченных тактов на тактовую частоту процессора.

Подобно прошлому эксперименту, мы будем брать данные различного объёма от 4КБ до 512МБ, и проходить по массиву миллионы раз с последующим усреднением результата. Чтобы минимизировать влияние дополнительных операций в цикле нагрузки, следуя примеру авторов lat_mem_rd, используем для тела нагрузки операцию p=(void**)*p;, которая компилируется в одну машинную команду, и развернём её 256 раз, чтобы возврат к началу цикла выполнялся относительно редко.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments21

Интервью с Дональдом Кнутом

Reading time1 min
Views2.1K
Роберт Скобл взял интервью у известного преподавателя программирования, члена Российский академии наук, профессора Дональда Кнута (часть 1, часть 2).

Кнут скромно говорит, что стал «гуру программирования» благодаря стечению обстоятельств, что он писал книги не ради денег (а потому что считал, что «рождён гиком»), даёт советы нынешним 20-летним компьютерщикам и высказывается о современных веб-технологиях.
Читать дальше →
Total votes 57: ↑50 and ↓7+43
Comments34

35 логотипов со скрытым смыслом

Reading time4 min
Views275K


Дизайн простого логотипа иногда бывает серым и скучным, если разрабатывается без доли воображения. Многие популярные бренды имеют простые, но в то же время эффективные логотипы. Вспомните дизайн логотипа знаменитого FedEx. Он выглядит элементарным и безыскусным, но на самом деле это отличная идея со скрытым смыслом, который заключается в стрелочке между буквами «E» и «x». Эта стрелка символизирует развитие и успех компании.

Это одна из самых больших проблем дизайнеров. Создание абстрактных логотипов с действенными «скрытыми посланиями» намного важнее, чем свистелки и перделки модный дизайн.
Это потому, что если логотип не передает всю «суть» компании, то и бренд продать не получится. Одним из самых популярных приемов в разработке логотипов является negative space (негативное пространство).
Прошу под кат.
Total votes 256: ↑181 and ↓75+106
Comments206

Экспериментальное определение характеристик кэш-памяти

Reading time6 min
Views5K
В ряде случаев (например, для тонкой оптимизации программы под конкретный компьютер) полезно знать характеристики кэш-подсистемы: количество уровней, время доступа к каждому уровню, их размер и ассоциативность, и т.п.
Для одноразовой оптимизации необходимые значения можно посмотреть в спецификации на компьютер, но когда требуется автоматическая оптимизация (например, во время сборки и установки программы), характеристики приходится определять косвенно, по результатам прогона специального набора тестов.
Удобная тестовая программа для Linux — lat_mem_rd из пакета тестов lmbench. Её работа заключается в том, что она выделяет в памяти массив и читает его элементы с заданным шагом, циклически проходя по массиву снова и снова. Затем выделяется массив большего размера, и т.д. Для каждого значения шага и размера массива подсчитывается среднее время доступа.
Пример графика, который был получен этой программой на реальной системе:

Как по полученным данным определить характеристики кэша?
Total votes 33: ↑33 and ↓0+33
Comments10

Почему я оставил Google и перешел в Facebook: Ларс Расмуссен

Reading time6 min
Views2.6K
На этой неделе был просто шквал интереснейших новостей от Google. Это всех нас радует. Но есть и напоминания о проблемах, которые зреют внутри «Корпорации Добра»…
elgephest

www.smh.com.au/technology/biz-tech/why-i-quit-google-to-join-facebook-lars-rasmussen-20101101-1799q.html
Стивен Хатчеон
Эксклюзивное интервью

image

Там мое место… Ларс Расмуссен говорит, что с нетерпением ждет момента, когда начнет работать в Facebook. Фото: Эндрю Килти (Andrew Quilty)

Ларс Расмуссен, сотрудник сиднейского офиса Google и соучредитель Google Maps впервые рассказал о причинах своего увольнения и перехода к Facebook вслед за целой когортой известных гуглеров, отдавших свои симпатии Facebook. «Мне кажется, что Facebook принадлежит к тому типу компаний, которые появляются раз в десятилетие», — сказал Расмуссен вчера вечером в интервью по телефону, объясняя, как он решил закончить свою шестилетнюю карьеру в Google, получив «очень заманчивое предложение» от создателя Facebook Марка Цукерберга.
«Очевидно, что корпорация Facebook уже изменила мир, и кажется, еще гораздо больше ей предстоит сделать. И поэтому я считаю, что именно там
Читать дальше →
Total votes 110: ↑96 and ↓14+82
Comments89

Шон Паркер — хакер, со-основатель Napster, Plaxo и Facebook, миллиардер и инвестор

Reading time15 min
Views45K
После просмотра фильма "The Social Network" мне стало интересно, насколько реален персонаж Шона Паркера, изображенный в фильме. Статья в Vanity Fair во многом утолила мой интерес, а Паркер оказался даже любопытнее, чем я предполагала. Так что я не удержалась и перевела статью — все ее «много букв» того стоят.

Те, кто не смотрел фильм, а только планирует, учтите, в тексте будет немного спойлера.

В 19 Шон Паркер помог создать Napster. В 24 он стал президентом-соучредителем Facebook. В 30 лет он – любитель вечеринок, гений, знаток социальных сетей, стесняющийся прессы, перспективный миллиардер. А теперь еще и знаменитость после того как Джастин Тимберлейк сыграл его в фильме Дэвида Финчера «The Social Network».

Шон Паркер сидел на уроке, посвященном мировым цивилизациям в своей школе в Вирджинии, когда вдруг кто-то передал ему записку. Его отец, — было сказано в ней, — ждал его, чтобы поехать на прием к врачу-ортодонту. По спине Паркера пробежал холодок. У него не было ортодонта. Когда он вышел, отец рассерженно запихнул его в семейный минивен. К тому моменту, когда они приехали в их скромный загородный дом, группа агентов ФБР выносила документы и настольный компьютер из комнаты Шона.
Читать далее
Total votes 203: ↑193 and ↓10+183
Comments84

Если мы не в состоянии производить, то мы не в состоянии и обладать

Reading time2 min
Views826
imageМоя цель – простота.
Хозяйственный принцип – это труд.
Нравственный принцип – это право человека на свой труд.
Благополучие производителя зависит, в конечном счете, также и от пользы, которую он приносит народу.


Предлагаю вашему вниманию небольшую выборку цитат из книги «Моя жизнь, мои достижения» Генри Форда. Фраза «они не потеряли актуальность» давно избита, но тем не менее это так, судите сами.

«На мой взгляд, человек иначе и не может, как быть постоянно на работе. Днем он должен думать о ней, а ночью – она ему снится. Идея выполнять свою работу в канцелярские часы, приниматься за нее утром и бросать ее вечером – и до следующего утра не возвращаться к ней ни одной мыслью – как будто очень хороша. Ее можно даже осуществить довольно просто, если только мы согласны иметь над собой кого-нибудь целую жизнь, быть служащими, быть может, даже и самостоятельными служащими, всем чем угодно, но только не директорами или ответственными руководителями. Для человека физического труда является даже необходимостью ограничивать свои рабочие часы – иначе он скоро истощит свои силы. Если он намерен всю жизнь оставаться при физическом труде, то должен забывать о своей работе в то мгновение, когда прозвучит фабричный гудок. Но если он хочет идти вперед и чего-нибудь достигнуть, то гудок для него только сигнал поразмыслить над своим трудовым днем и найти, как бы ему делать лучше прежнего».

Читать дальше →
Total votes 66: ↑57 and ↓9+48
Comments114

Мышление и принцип «сумасшедшего программиста»

Reading time7 min
Views9.3K
Попробую нарушить последовательность повествования, которую планировал изначально. После описания «Эмоционального компьютера» я хотел написать об устройстве ассоциативной памяти, но по комментариям я так понимаю, что читатели уже устали от скучных лекций и ждут экшена.

Сначала расскажу историю. Был у меня приятель, талантливый программист.
Читать дальше →
Total votes 74: ↑56 and ↓18+38
Comments123

Чему мы должны учить разработчиков нового программного обеспечения? Почему?

Reading time11 min
Views3.2K
Требуются существенные изменения в обучении компьютерной науке, для лучшего соответствия потребностям индустрии.

image
Компьютерная наука должна быть в центре развития систем программного обеспечения. В противном случае мы должны полагаться на индивидуальный опыт и практические методы, что в конечном итоге приведёт к менее продуктивным, менее надёжным системам, разработанным и поддерживающимся по неоправданно высоким ценам. Нам нужны изменения в образовании, которые позволят улучшить производственную практику.

Проблема

Во многих местах существует разрыв между обучением компьютерной науке и потребностями индустрии. Взгляните на следующую ситуацию:
Знаменитый профессор компьютерной науки (с гордостью): «Мы не учим программированию; мы обучаем компьютерной науке.»
Производственный менеджер: «Они не способны программировать.»

Во многом они оба правы, и не только на поверхностном уровне. Задача научного сообщества состоит не в том, чтобы обучать посредственных программистов, а индустрия не требует только «всесторонне развитых, высокообразованных мыслителей» и «учёных».

Другой профессор компьютерной науки: «Я не написал ни одной строчки кода.»
Читать дальше →
Total votes 53: ↑40 and ↓13+27
Comments47

Некоторые (полезные) советы по Windows 7

Reading time4 min
Views38K
Содержание:
1. Быстрый запуск приложений с правами администратора
2. Отчет об использовании электроэнергии
3. Поиск в интернете из меню «пуск»
4. Навигация по панели задач
5. Скрытие значка Windows Live Messenger
6. Сворачивание окон
7. Быстрое открытие и закрытие копии приложения
8. Копирование файлов из командной строки в несколько потоков
9. Быстрое управление окном

Читать дальше →
Total votes 282: ↑218 and ↓64+154
Comments113

Here be dragons: Управление памятью в Windows как оно есть [1/3]

Reading time8 min
Views175K

Каталог:
Один
Два
Три

Менеджер памяти (и связанные с ним вопросы контроллера кеша, менеджера ввода/вывода и пр) — одна из вещей, в которой (наряду с медициной и политикой) «разбираются все». Но даже люди «изучившие винду досконально» нет-нет, да и начинают писать чепуху вроде (не говоря уже о другой чепухе, написанной там же):
Грамотная работа с памятью!!! За все время использования у меня своп файл не увеличился ни на Килобайт. По этому Фаерфокс с 10-20 окнами сворачивается / разворачивается в/из трея как пуля. Такого эффекта я на винде добивался с отключенным свопом и с переносом tmp файлов на RAM диск.

Или к примеру μTorrent — у меня нет никаких оснований сомневаться в компетентности его авторов, но вот про работу памяти в Windows они со всей очевидностью знают мало. Не забываем и товарищей, производящих софт для слежения за производительностью и не имеющих ни малейшего понятия об управлении памятью в Windows (и поднявших по этому поводу истерику на пол интернета, на Ars-е даже был разбор полетов). Но самое потрясающее, что я видел всвязи с управлением памятью — это совет переместить pagefile на RAM-диск:
Из моих трех гигабайт под RAM disk был выделен один (на тот момент, когда на лаптопе еще была установлена XP), на котором я создал своп на 768МБ ...

Цель данной статьи — не полное описание работы менеджера памяти (не хватит ни места ни опыта), а попытка пролить хоть немного света на темное царство мифов и суеверий, окружающих вопросы управления памятью в Windows.
Читать дальше →
Total votes 360: ↑338 and ↓22+316
Comments85

Talk on the Run. Говорящий программист

Reading time4 min
Views1K
Я довольно давно сижу в глубоко эшелонированном тылу IT-контор, успешно шесть лет прикидываясь блондинкой и внедряя ростки психологического знания и коммуникативных навыков в программерские головы всех видов и мастей.
И вот дозрела поделиться тем, зачем, собственно, говоря, я это делаю, и как именно.

Зачем?

  • Большинство проектов, с которыми мне приходится сталкиваться, устроены по принципу двух-трех-уровневой иерархии, причем наверху пищевой цепочки находятся серьезные боссы, управляющие серьезными клиентами, а внизу – кодеры за еду разной степени продвинутости. В золотой середине сидят тимлиды, они же техлиды, они же координаторы, на которых, собственно говоря, и ложится основная ответственность за реальный value и реальный delivery.
  • Эти люди чаще всего – собственный продукт компании, начинавшие как молодая шпана, прошедшие длинный путь развития, и при этом – они категорически не рвутся превращаться в больших начальников, поскольку свежий ветер еще шумит у них в голове, и отрываться от своей, любовно возделанной на .NET грядки, им совсем даже не хочется.
  • Тем не менее – к ним приходят и говорят: у тебя растут года, парень, пора руководить, че.

Читать дальше →
Total votes 144: ↑126 and ↓18+108
Comments146

Структура и интерпретация компьютерных программ

Reading time1 min
Views12K
image
Перевод второй лекции Джеральда Сассмана
«Процедуры и процессы: подстановочная модель.»

Эти лекции были прочитаны 25 лет назад сотрудникам HP, но на самом деле это тот легендарный вводный курс 6.001, который читался в MIT в 1980 году. С тех пор эти лекции sine qua none во всем мире программирования. Хотелось бы чтобы каждый программист посмотрел этот курс, ничего не учит абстрактному мышлению лучше, чем SICP.
Приятного просмотра на ночь глядя.
Читать дальше →
Total votes 75: ↑75 and ↓0+75
Comments37

Эффективная обработка фотографий в Photoshop

Reading time6 min
Views146K
Эффективная обработка фотографий в Photoshop

Читая статьи о Photoshop, я часто удивляюсь тому, насколько многие авторы усложняют решение по сути простых задач по обработке. Этим страдают и многие «монументальные» писатели, например Дэн Маргулис. Но ему это простительно – его задача написать о всех тонкостях и нюансах процесса обработки, рассмотреть его со всех ракурсов и сторон. Хотя именно эта особенность подачи материала в его книгах отталкивает многих читателей.

На самом деле, корни подобных способов «увеличить резкость в 40 действий» растут из очень простой вещи – люди, которые пишут эти уроки, никогда не работали с большим объемом фотографий. То есть, как правило, у них есть пара фотографий и они готовы в процессе их обработки убить вечер-другой. Но когда у тебя идут постоянные заказы, и с каждой фотосессии тебе надо серьезно обработать несколько десятков кадров – начинаешь задумываться о более простых и удобных способах обработки.

О них мы сегодня и поговорим. Я расскажу вам о пяти простых, но очень эффективных инструментах Photoshop, которые я постоянно использую в своей работе.

Читать дальше →
Total votes 288: ↑244 and ↓44+200
Comments117

Эмоции в нейросетях

Reading time5 min
Views6.4K
Балуясь с нейронными сетями и алгоритмами самообучения для них, столкнулся с мыслью, что алгоритм обучения с учителем вполне мог бы быть отнесен к категории самообучения, если бы учителя заменили «эмоциональными» нейронами. Такие нейроны, по сути, являются просто датчиками «хорошо/плохо», а при соединении с обычными нейронами создают определенные связи, гасящие либо возбуждающие в зависимости от типа датчика.
Читать дальше →
Total votes 58: ↑52 and ↓6+46
Comments35

64-битная Windows — это очень просто

Reading time2 min
Views13K
Перевод поста piers7 «64 Bit Explained».

Послушайте, в этом правда нет ничего сложного.

Все программы находятся там же, в %ProgramFiles%, кроме случаев, когда вам требуется 32-битная версия, которая находится в %ProgramFiles(x86)%, за исключением ситуаций, когда дело касается 32-битной машины, и в этом случае они по-прежнему в %ProgramFiles%.

Все эти библиотеки, DLL, по-прежнему находятся в %SystemRoot%\System32, просто теперь они 64-битные. Ну а 32-битные, они вот, в %SystemRoot%\SysWOW64. Вы ещё следите за объяснением? Да, а 16-битные всё так же хранятся в %SystemRoot%\System – перемещать их в иное место было бы странным.
Читать дальше →
Total votes 227: ↑175 and ↓52+123
Comments115

Управление транспортным средством с помощью нейронной сети

Reading time11 min
Views17K

Аннотация


Используя нейронную сеть, мы хотим, чтобы транспортное средство управляло собой само, избегая препятствий. Мы добиваемся этого путем выбора соответствующих входов/выходов и тщательного обучения нейронной сети. Мы скармливаем сети расстояния до ближайших препятствий вокруг автомобиля, имитируя зрение водителя-человека. На выходе получаем ускорение и поворот руля транспортного средства. Нам также необходимо обучить сеть на множестве стратегий ввода-вывода. Результат впечатляющий даже с использованием всего лишь нескольких нейронов! Автомобиль ездит, обходя препятствия, но возможно сделать некоторые модификации, чтобы это программное средство справлялось с более специфическими задачами.

Введение


Идея в том, чтобы иметь транспортное средство, которое управляет собой само и избегает препятствий в виртуальном мире. Каждое мгновение оно само решает, как изменить свою скорость и направление в зависимости от окружающей среды. Для того чтобы сделать это более реальным, ИИ должен видеть только то, что видел бы человек, если бы находился за рулем, так что ИИ будет принимать решения только на основе препятствий, которые находятся спереди транспортного средства. Имея реалистичный ввод, ИИ мог бы быть использован в реальном автомобиле и работать так же хорошо.
Когда я слышу фразу: "Управление транспортным средством с помощью ИИ", я сразу же задумываюсь о компьютерных играх. Многие из гоночных игр могут использовать эту технику для контроля транспортных средств, но есть целый ряд других приложений, которые ищут средство управления транспортом в виртуальном или же реальном мире.
Так как же мы это будем делать? Существует множество способов реализации ИИ, но ведь если нам нужен "мозг" для управления транспортным средством, то нейронные сети подойдут как нельзя лучше. Нейронные сети работают так же, как и наш мозг. Они, наверное, и будут правильным выбором. Мы должны определить, что будет входом, а что выходом нашей нейронной сети.
Читать дальше →
Total votes 66: ↑61 and ↓5+56
Comments23
1
23 ...

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity