Абраш, Майкл

Поделись знанием:
Перейти к: навигация, поиск

Майкл Абраш — программист и технический писатель, специализирующийся на оптимизации кода, программировании на ассемблере под архитектуру 80x86. Репутация специалиста закрепилась за ним после появления в 1990 году его книги Zen of Assembly Language Volume 1: Knowledge[1]. Эта тема была продолжена позднее в его новой книге Zen of Graphics Programming[2]. Он часто начинает свои технические выступления с анекдота, показывающего параллель между его реальным опытом и темой выступления. Стиль его изложения заставляет читателей думать иначе (outside the box) и искать совершенно новый подход в решении технических проблем.





Программист игр

До того, как Абраш стал техническим писателем, он был программистом игр на заре появления IBM PC. Его первой коммерческой игрой была Space Strike, выпущенная в 1982. Он был соавтором нескольких игр вместе с Дэном Илловски, который ранее написал «Snack Attack» для Apple II. Абраш и Илловски работали вместе над «Cosmic Crusader» (1982), «Big Top» (1983), и «Snack Attack II»[3].

После работы в Microsoft над графикой и ассемблерной частью в Windows NT 3.1 он вернулся в индустрию видеоигр и в середине 1990-х присоединился к id Software для работы над Quake. В те времена Майкл также принял участие в разработке Doom. Некоторые из технологий, применённых в Quake, описаны в книге Абраша «Ramblings in Realtime» опубликованной в журнале Dr. Dobb[4]. После того как Quake был выпущен, Абраш вернулся в Microsoft, где работал над распознаванием естественных языков, затем перешёл в команду Xbox до 2001 года.

В 2002 Абраш устроился на работу в RAD Game Tools, где был одним из создателей программного обеспечения для рендеринга, которое эмулирует функциональность видеокарт уровня DirectX 7 и использовалось в игре Unreal Tournament 2004. В конце 2005 Pixomatic была приобретена Intel. Во время разработки Pixomatic Абраш и Майк Сертейн (Mike Sartain) спроектировали архитектуру Larrabee, которая теперь используется Intel в технологии GPGPU[5].

Гейб Ньюэлл, директор Valve, сказал, что «пытался нанять Майкла Абраша постоянно. Примерно раз в квартал мы ходили вместе пообедать и я спрашивал „ты уже готов присоединиться к нам?“»[6]. В 2011 Абраш присоединился к Valve[7].

В 2014 году Абраш покинул Valve и присоединился к компании по разработке устройств виртуальной реальности OculusVR (несколькими месяцами ранее состав компании также пополнил программист из id Software Джон Кармак, с которым Абраш работал над Quake).

Технический писатель

Майкл Абраш в 1980-х вёл одну из рубрик в журнале «Programmer’s Journal». В 1989 году эти статьи были собраны в книге «Power Graphics Programming».

Его вторая книга «Zen of Assembly Language» (1990), фокусировалась на написании эффективного ассемблерного кода для 16-битных процессоров Intel 8086, но после её опубликования был уже доступен новый процессор Intel 80486[8]. Планируемая вторая часть книги о программировании графики так и не была выпущена. Ключевая мысль «Zen of Assembly Language» была в том, что производительность всегда должна быть измерена, и книга включала в себя инструмент для этого, названный «Zen Timer», для проверки, сработает ли теоретическая оптимизация кода.

Большая часть содержимого «Zen of Assembly Language» была обновлена в «Zen of Code Optimization: The Ultimate Guide to Writing Software That Pushes PCs to the Limit» (1994), появился и новый материал[9]. Презентация поэтапного улучшения программы демонстрировала, как модернизация алгоритма может улучшить производительность до 100 раз. С другой стороны, переписывание на ассемблере может повысить производительность только до 10 раз.

В 1997 вышла книга Абраша «Graphics Programming Black Book»[10] [11]. Это было собрание статей из журнала Dr. Dobb’s и наработок, касающихся графической подсистемы Quake.

Напишите отзыв о статье "Абраш, Майкл"

Примечания

  1. Abrash Michael. Zen of Assembly Language: Knowledge. — Scott Foresman Trade, 1990. — ISBN 0-673-38602-3.
  2. Abrash Michael. Zen of Graphics Programming: The Ultimate Guide to Writing Fast PC Graphics. — Coriolis Group; Bk&Disk edition. — ISBN 1-883577-08-X.
  3. Hague, James [www.dadgum.com/giantlist/list.html The Giant List of Classic Game Programmers]. [www.webcitation.org/6B7aK17q9 Архивировано из первоисточника 3 октября 2012].
  4. Abrash, Michael [www.drdobbs.com/184410037 Ramblings in Realtime]. www.drdobbs.com (1 февраля 1996). Проверено 10 июля 2010. [www.webcitation.org/6B7aKUlh0 Архивировано из первоисточника 3 октября 2012].
  5. Abrash, Michael [www.drdobbs.com/architecture-and-design/216402188 A First Look at the Larrabee New Instructions (LRBni)]. www.drdobbs.com/architecture-and-design (1 апреля 2009). Проверено 10 июля 2010. [www.webcitation.org/6B7aL8RBY Архивировано из первоисточника 3 октября 2012].
  6. Walker, John [www.rockpapershotgun.com/2007/11/21/rps-exclusive-gabe-newell-interview/ RPS Exclusive: Gabe Newell Interview]. Rock, Paper, Shotgun (21 ноября 2007). Проверено 22 января 2010. [www.webcitation.org/6B7aLlQ1V Архивировано из первоисточника 3 октября 2012].
  7. Crossley, Rob [www.develop-online.net/news/37665/Valve-hires-world-class-development-trio Valve hires world-class development trio]. Develop (13 мая 2011). Проверено 16 мая 2011. [www.webcitation.org/6B7aN7L9s Архивировано из первоисточника 3 октября 2012].
  8. Hague, James [prog21.dadgum.com/19.html Five Memorable Books About Programming]. prog21.dadgum.com (18 февраля 2008). Проверено 10 июля 2010. [www.webcitation.org/6B7aOJtDQ Архивировано из первоисточника 3 октября 2012].
  9. Abrash Michael. Zen of Code Optimization: The Ultimate Guide to Writing Software That Pushes PCs to the Limit. — Coriolis Group Books. — ISBN 1-883577-03-9.
  10. Abrash MichaelMichael Abrash. Graphics Programming Black Book. — Coriolis Group Books, 1997. — ISBN 1-57610-174-6.
  11. Abrash, Michael [www.drdobbs.com/high-performance-computing/184404919 Graphics Programming Black Book]. www.drdobbs.com/high-performance-computing (1 ноября 2001). Проверено 10 июля 2010. [www.webcitation.org/6B7aOlHSY Архивировано из первоисточника 3 октября 2012].

Ссылки

  • [blogs.valvesoftware.com/abrash/ Ramblings in Valve Time], блог Майкла Абраша.
  • [www.bluesnews.com/abrash/ Ramblings in Realtime by Michael Abrash], детальное описание графического движка, использованного в Quake ([www.bluesnews.com/abrash/abrash.pdf PDF version]).
  • [www.drdobbs.com/high-performance-computing/184404919 «Graphics Programming Black Book» by Michael Abrash], для скачивания [nondot.org/~sabre/Mirrored/GraphicsProgrammingBlackBook/ альтернативный источник].
  • [webreview.com/downloads/premium/abrash/ Another source of his Graphics Programming Black Book], «Graphics Programming Black Book».
  • [www.byte.com/abrash/ Byte.com’s copy of «Graphics Programming» (Active February 2008)], «Graphics Programming».
  • [www.phatcode.net/res/224/files/html/index.html Black Book Special Edition], «Black Book Special Edition».
  • [babysoftmurderhands.com/2012/08/quakecon-2012-exclusive-interview-40-minutes-michael-abrash-valve-software/ 40 minutes with Michael Abrash of Valve Software"], аудио интервью с Майклом Абрашем на конференции QuakeCon 2012, обсуждение его работы в Valve.

Отрывок, характеризующий Абраш, Майкл

– Послушай, Ростов, – сказал Долохов, ясно улыбаясь и глядя в глаза Николаю, – ты знаешь поговорку: «Счастлив в любви, несчастлив в картах». Кузина твоя влюблена в тебя. Я знаю.
«О! это ужасно чувствовать себя так во власти этого человека», – думал Ростов. Ростов понимал, какой удар он нанесет отцу, матери объявлением этого проигрыша; он понимал, какое бы было счастье избавиться от всего этого, и понимал, что Долохов знает, что может избавить его от этого стыда и горя, и теперь хочет еще играть с ним, как кошка с мышью.
– Твоя кузина… – хотел сказать Долохов; но Николай перебил его.
– Моя кузина тут ни при чем, и о ней говорить нечего! – крикнул он с бешенством.
– Так когда получить? – спросил Долохов.
– Завтра, – сказал Ростов, и вышел из комнаты.


Сказать «завтра» и выдержать тон приличия было не трудно; но приехать одному домой, увидать сестер, брата, мать, отца, признаваться и просить денег, на которые не имеешь права после данного честного слова, было ужасно.
Дома еще не спали. Молодежь дома Ростовых, воротившись из театра, поужинав, сидела у клавикорд. Как только Николай вошел в залу, его охватила та любовная, поэтическая атмосфера, которая царствовала в эту зиму в их доме и которая теперь, после предложения Долохова и бала Иогеля, казалось, еще более сгустилась, как воздух перед грозой, над Соней и Наташей. Соня и Наташа в голубых платьях, в которых они были в театре, хорошенькие и знающие это, счастливые, улыбаясь, стояли у клавикорд. Вера с Шиншиным играла в шахматы в гостиной. Старая графиня, ожидая сына и мужа, раскладывала пасьянс с старушкой дворянкой, жившей у них в доме. Денисов с блестящими глазами и взъерошенными волосами сидел, откинув ножку назад, у клавикорд, и хлопая по ним своими коротенькими пальцами, брал аккорды, и закатывая глаза, своим маленьким, хриплым, но верным голосом, пел сочиненное им стихотворение «Волшебница», к которому он пытался найти музыку.
Волшебница, скажи, какая сила
Влечет меня к покинутым струнам;
Какой огонь ты в сердце заронила,
Какой восторг разлился по перстам!
Пел он страстным голосом, блестя на испуганную и счастливую Наташу своими агатовыми, черными глазами.
– Прекрасно! отлично! – кричала Наташа. – Еще другой куплет, – говорила она, не замечая Николая.
«У них всё то же» – подумал Николай, заглядывая в гостиную, где он увидал Веру и мать с старушкой.
– А! вот и Николенька! – Наташа подбежала к нему.
– Папенька дома? – спросил он.
– Как я рада, что ты приехал! – не отвечая, сказала Наташа, – нам так весело. Василий Дмитрич остался для меня еще день, ты знаешь?
– Нет, еще не приезжал папа, – сказала Соня.
– Коко, ты приехал, поди ко мне, дружок! – сказал голос графини из гостиной. Николай подошел к матери, поцеловал ее руку и, молча подсев к ее столу, стал смотреть на ее руки, раскладывавшие карты. Из залы всё слышались смех и веселые голоса, уговаривавшие Наташу.
– Ну, хорошо, хорошо, – закричал Денисов, – теперь нечего отговариваться, за вами barcarolla, умоляю вас.
Графиня оглянулась на молчаливого сына.
– Что с тобой? – спросила мать у Николая.
– Ах, ничего, – сказал он, как будто ему уже надоел этот всё один и тот же вопрос.
– Папенька скоро приедет?
– Я думаю.
«У них всё то же. Они ничего не знают! Куда мне деваться?», подумал Николай и пошел опять в залу, где стояли клавикорды.
Соня сидела за клавикордами и играла прелюдию той баркароллы, которую особенно любил Денисов. Наташа собиралась петь. Денисов восторженными глазами смотрел на нее.
Николай стал ходить взад и вперед по комнате.
«И вот охота заставлять ее петь? – что она может петь? И ничего тут нет веселого», думал Николай.
Соня взяла первый аккорд прелюдии.
«Боже мой, я погибший, я бесчестный человек. Пулю в лоб, одно, что остается, а не петь, подумал он. Уйти? но куда же? всё равно, пускай поют!»
Николай мрачно, продолжая ходить по комнате, взглядывал на Денисова и девочек, избегая их взглядов.
«Николенька, что с вами?» – спросил взгляд Сони, устремленный на него. Она тотчас увидала, что что нибудь случилось с ним.
Николай отвернулся от нее. Наташа с своею чуткостью тоже мгновенно заметила состояние своего брата. Она заметила его, но ей самой так было весело в ту минуту, так далека она была от горя, грусти, упреков, что она (как это часто бывает с молодыми людьми) нарочно обманула себя. Нет, мне слишком весело теперь, чтобы портить свое веселье сочувствием чужому горю, почувствовала она, и сказала себе:
«Нет, я верно ошибаюсь, он должен быть весел так же, как и я». Ну, Соня, – сказала она и вышла на самую середину залы, где по ее мнению лучше всего был резонанс. Приподняв голову, опустив безжизненно повисшие руки, как это делают танцовщицы, Наташа, энергическим движением переступая с каблучка на цыпочку, прошлась по середине комнаты и остановилась.
«Вот она я!» как будто говорила она, отвечая на восторженный взгляд Денисова, следившего за ней.
«И чему она радуется! – подумал Николай, глядя на сестру. И как ей не скучно и не совестно!» Наташа взяла первую ноту, горло ее расширилось, грудь выпрямилась, глаза приняли серьезное выражение. Она не думала ни о ком, ни о чем в эту минуту, и из в улыбку сложенного рта полились звуки, те звуки, которые может производить в те же промежутки времени и в те же интервалы всякий, но которые тысячу раз оставляют вас холодным, в тысячу первый раз заставляют вас содрогаться и плакать.
Наташа в эту зиму в первый раз начала серьезно петь и в особенности оттого, что Денисов восторгался ее пением. Она пела теперь не по детски, уж не было в ее пеньи этой комической, ребяческой старательности, которая была в ней прежде; но она пела еще не хорошо, как говорили все знатоки судьи, которые ее слушали. «Не обработан, но прекрасный голос, надо обработать», говорили все. Но говорили это обыкновенно уже гораздо после того, как замолкал ее голос. В то же время, когда звучал этот необработанный голос с неправильными придыханиями и с усилиями переходов, даже знатоки судьи ничего не говорили, и только наслаждались этим необработанным голосом и только желали еще раз услыхать его. В голосе ее была та девственная нетронутость, то незнание своих сил и та необработанная еще бархатность, которые так соединялись с недостатками искусства пенья, что, казалось, нельзя было ничего изменить в этом голосе, не испортив его.
«Что ж это такое? – подумал Николай, услыхав ее голос и широко раскрывая глаза. – Что с ней сделалось? Как она поет нынче?» – подумал он. И вдруг весь мир для него сосредоточился в ожидании следующей ноты, следующей фразы, и всё в мире сделалось разделенным на три темпа: «Oh mio crudele affetto… [О моя жестокая любовь…] Раз, два, три… раз, два… три… раз… Oh mio crudele affetto… Раз, два, три… раз. Эх, жизнь наша дурацкая! – думал Николай. Всё это, и несчастье, и деньги, и Долохов, и злоба, и честь – всё это вздор… а вот оно настоящее… Hy, Наташа, ну, голубчик! ну матушка!… как она этот si возьмет? взяла! слава Богу!» – и он, сам не замечая того, что он поет, чтобы усилить этот si, взял втору в терцию высокой ноты. «Боже мой! как хорошо! Неужели это я взял? как счастливо!» подумал он.