fbpx
Wikipedia

Michael Abrash

Michael Abrash es un programador de videojuegos y escritor técnico especializado en la optimización de procesadores 80x86 usando lenguaje ensamblador. Por lo regular comienza una discusión técnica comparando el asunto técnico en cuestión con sus experiencias en la vida diaria. Su manera de escribir motiva al lector a pensar creativamente y abordar la resolución de problemas técnicos de una forma innovadora.

Michael Abrash
Información personal
Nacimiento Siglo XX
Residencia Washington
Nacionalidad Estadounidense
Educación
Educado en Universidad de Pensilvania
Información profesional
Ocupación Ingeniero, programador de videojuegos e informático teórico
Área Optimización de software
Empleador

Programador de Videojuegos

Antes de ser un escritor técnico Abrash fue un programador de videojuegos cuando se empezaron a comercializar las primeras computadoras de IBM. Su primer juego comercial, Space Strike, fue lanzado en 1982 y arrancaba cuando la computadora se encendía. Fue coautor de varios juegos de PC con Dan Illowsky quien previamente creó Snack Attack para la Apple II. Abrash y Illowsky trabajaron juntos en Cosmic Crusader (1982), Big Top (1983) y Snack Attack II.[1]

Después de trabajar en Microsoft en los gráficos usados por el sistema operativo Windows NT 3.1 usando código ensamblador, regresó a la industria de los videojuegos a mediados de los noventas para trabajar en el videojuego Quake de id Software. Algunas partes de la tecnología que usa Quake están documentadas en la columna que publicaba para la revista Dr. Dobb's Journal, llamada Abrash's Ramblings in Realtime.[2]​ Después de que Quake saliera a la venta, Abrash regresó a Microsoft para trabajar en investigación de lenguaje natural, luego se movió al equipo del primer Xbox en el 2001.

En 2002 trabajó para RAD Game Tools, donde él contribuye el software de renderizado de la compañía Pixomatic, el cual emula la funcionalidad de una tarjeta gráfica con un nivel similar a DirectX 7 y es usado como el software de renderizado en juegos como Unreal Tournament 2004. En esa compañía el y Mike Sartain diseñaron una arquitectura nueva llamada Larrabee, la cual es parte del proyecto GPGPU de Intel. A finales del 2005, Pixomatic fue adquirida por Intel.

Gabe Newell, director general de Valve, menciona que ha "tratado de contratar a Michael Abrash desde siempre. [...] Cada 3 meses vamos a cenar y le pregunto '¿ya estás listo para trabajar con nosotros?" En el 2011 Abrash se unió a Valve.

El 28 de marzo de 2014, la compañía de realidad virtual Oculus VR, público un comunicado en el que menciona que Michael Abrash se une a la compañía como científico en jefe. Esto sucede tres días después de que Facebook anunciara la compra de Oculus VR.

Escritor Técnico

En los 80s fue escritor para la revista Programmer´s Journal. Los artículos publicados en esa revista fueron condensados y publicados en su libro de 1989, Power Graphics Programming.

Su segundo libro, Zen of Assembly Language (1990), se enfoca en escribir eficientemente código de ensamblador para el procesador de 16 bits 8086, pero para cuando su libro salió al mercado el procesador 80486 ya estaba disponible.[3]​ El tema principal del libro era que el rendimiento del ordenador debe de medirse todo el tiempo; el libro incluye una herramienta llamada Zen Timer para medir si las optimizaciones al código fuente realmente están funcionando.

Mucho del contenido de Zen of Assembly Language fue actualizado en el libro Zen of Code Optimization: The Ultimate Guide to Writing Software That Pushes PCs to the Limit (1994),[4]​ además de añadir material nuevo. La presentación de un programa de refinamiento gradual demuestra empíricamente como el rediseño de algoritmos puede mejorar el desempeño en un factor de 100. El recodificar lenguaje ensamblador por otro lado solo puede mejorar el desempeño en un factor de 10. Muestra cuán elusiva la mejora de desempeño puede ser; el solo mejorar el desempeño en una subrutina puede exponer cuellos de botella en otras. También demuestra las mejoras de desempeño usando instrucciones en ensamblador específicas del procesador, en comparación a optimizaciones con lenguaje ensamblador usado en general en varios procesadores.

Otra lección que Abrash ofrece es como las mejoras de desempeño obtenidas, micro optimizaciones, pueden desaparecer o incluso hacer el programa más lento. Fue capaz de mejorar la velocidad de sus programas al contar cuidadosamente los ciclos del reloj del procesador en cada instrucción, para luego ordenarlas de tal forma que usaran el menor número de ciclos posible, aunque el número de ciclos de reloj de cada instrucción cambiaba con cada nueva implementación de la arquitectura x86 y, como resultado de esto, los beneficios que obtenía en velocidad se perdían de una generación de procesadores a otra. Por ejemplo, la instrucción orientada en bit, "XOR EAX, EAX" (el ejemplo anterior está en la sintaxis de ensamblador usado por Intel) era la manera más rápida para establecer un registro a cero en las primeras generaciones de los procesadores x86, pero la mayoría del código es generado por compiladores, y los compiladores rara vez generan instrucciones XOR, así que los diseñadores decidieron mover las instrucciones generadas por el compilador que se usaban más frecuentemente al principio de la lógica de decodificación, haciendo que la instrucción literal "MOV EAX, $0" se ejecutara más rápido que la instrucción XOR. Aun así, el código ensamblador que es cuidadosamente optimizado en general se ejecutara bien en procesadores x86 más recientes, incluso sin optimizar para las nuevas arquitecturas. La razón es que las políticas de optimización cambian gradualmente entre arquitecturas, así que varias optimizaciones que se asumen válidas en arquitecturas anteriores siguen funcionando en arquitecturas nuevas, por ejemplo "la aritmética de enteros es mucho más rápida que la aritmética de punto flotante" o "el minimizar el acceso a memoria para maximizar el uso de registros".

En 1997 el libro Graphics Programming Black Book[5][6]​ fue publicado, es una colección de sus artículos cuando escribía para la revista Dr. Dobb's sobre su trabajo en el subsistema de gráficos para Quake 1. Actualmente se encuentra disponible de manera gratuita en la página web de la revista.

Referencias

<references> [1][2][6][3][5][4]

  1. Hague, James. «The Giant List of Classic Game Programmers». 
  2. Abrash, Michael (1 de febrero de 1996). «Ramblings in Realtime». www.drdobbs.com. Consultado el 10 de julio de 2010. 
  3. Hague, James (18 de febrero de 2008). «Five Memorable Books About Programming». prog21.dadgum.com. Consultado el 10 de julio de 2010. 
  4. Abrash, Michael (8 de diciembre de 1994). Zen of Code Optimization: The Ultimate Guide to Writing Software That Pushes PCs to the Limit. Coriolis Group Books. ISBN 978-1-883577-89-6. 
  5. Abrash, Michael (julio de 1997). Graphics Programming Black Book. Coriolis Group Books. ISBN 978-1-57610-174-2. 
  6. Abrash, Michael (1 de noviembre de 2001). «Graphics Programming Black Book». www.drdobbs.com/high-performance-computing. Consultado el 10 de julio de 2010. 

Enlaces externos

  • Ramblings in Valve Time - El blog oficial de Michael Abrash (en inglés)
  • Ramblings in Realtime by Michael Abrash, descripción detallada de la programación del motor gráfico del juego Quake (en inglés) (versión PDF).
  • Graphics Programming Black Book by Michael Abrash (version HTML y ebook).
  • 40 minutes with Michael Abrash of Valve Software", Entrevista en formato audio (en inglés) con Michael Abrash en la convención QuakeCon 2012 en la que se habla de su carrera y su trabajo en Valve.
  •   Datos: Q838831

michael, abrash, texto, sigue, traducción, defectuosa, quieres, colaborar, wikipedia, busca, artículo, original, mejora, esta, traducción, copia, pega, siguiente, código, página, discusión, autor, este, artículo, subst, aviso, traducido, programador, videojueg. El texto que sigue es una traduccion defectuosa Si quieres colaborar con Wikipedia busca el articulo original y mejora esta traduccion Copia y pega el siguiente codigo en la pagina de discusion del autor de este articulo subst Aviso mal traducido Michael Abrash Michael Abrash es un programador de videojuegos y escritor tecnico especializado en la optimizacion de procesadores 80x86 usando lenguaje ensamblador Por lo regular comienza una discusion tecnica comparando el asunto tecnico en cuestion con sus experiencias en la vida diaria Su manera de escribir motiva al lector a pensar creativamente y abordar la resolucion de problemas tecnicos de una forma innovadora Michael AbrashInformacion personalNacimientoSiglo XXResidenciaWashingtonNacionalidadEstadounidenseEducacionEducado enUniversidad de PensilvaniaInformacion profesionalOcupacionIngeniero programador de videojuegos e informatico teoricoAreaOptimizacion de softwareEmpleadorMicrosoftId SoftwareRAD Game ToolsValve CorporationOculus VRMeta Platforms editar datos en Wikidata Indice 1 Programador de Videojuegos 2 Escritor Tecnico 3 Referencias 4 Enlaces externosProgramador de Videojuegos EditarAntes de ser un escritor tecnico Abrash fue un programador de videojuegos cuando se empezaron a comercializar las primeras computadoras de IBM Su primer juego comercial Space Strike fue lanzado en 1982 y arrancaba cuando la computadora se encendia Fue coautor de varios juegos de PC con Dan Illowsky quien previamente creo Snack Attack para la Apple II Abrash y Illowsky trabajaron juntos en Cosmic Crusader 1982 Big Top 1983 y Snack Attack II 1 Despues de trabajar en Microsoft en los graficos usados por el sistema operativo Windows NT 3 1 usando codigo ensamblador regreso a la industria de los videojuegos a mediados de los noventas para trabajar en el videojuego Quake de id Software Algunas partes de la tecnologia que usa Quake estan documentadas en la columna que publicaba para la revista Dr Dobb s Journal llamada Abrash s Ramblings in Realtime 2 Despues de que Quake saliera a la venta Abrash regreso a Microsoft para trabajar en investigacion de lenguaje natural luego se movio al equipo del primer Xbox en el 2001 En 2002 trabajo para RAD Game Tools donde el contribuye el software de renderizado de la compania Pixomatic el cual emula la funcionalidad de una tarjeta grafica con un nivel similar a DirectX 7 y es usado como el software de renderizado en juegos como Unreal Tournament 2004 En esa compania el y Mike Sartain disenaron una arquitectura nueva llamada Larrabee la cual es parte del proyecto GPGPU de Intel A finales del 2005 Pixomatic fue adquirida por Intel Gabe Newell director general de Valve menciona que ha tratado de contratar a Michael Abrash desde siempre Cada 3 meses vamos a cenar y le pregunto ya estas listo para trabajar con nosotros En el 2011 Abrash se unio a Valve El 28 de marzo de 2014 la compania de realidad virtual Oculus VR publico un comunicado en el que menciona que Michael Abrash se une a la compania como cientifico en jefe Esto sucede tres dias despues de que Facebook anunciara la compra de Oculus VR Escritor Tecnico EditarEn los 80s fue escritor para la revista Programmer s Journal Los articulos publicados en esa revista fueron condensados y publicados en su libro de 1989 Power Graphics Programming Su segundo libro Zen of Assembly Language 1990 se enfoca en escribir eficientemente codigo de ensamblador para el procesador de 16 bits 8086 pero para cuando su libro salio al mercado el procesador 80486 ya estaba disponible 3 El tema principal del libro era que el rendimiento del ordenador debe de medirse todo el tiempo el libro incluye una herramienta llamada Zen Timer para medir si las optimizaciones al codigo fuente realmente estan funcionando Mucho del contenido de Zen of Assembly Language fue actualizado en el libro Zen of Code Optimization The Ultimate Guide to Writing Software That Pushes PCs to the Limit 1994 4 ademas de anadir material nuevo La presentacion de un programa de refinamiento gradual demuestra empiricamente como el rediseno de algoritmos puede mejorar el desempeno en un factor de 100 El recodificar lenguaje ensamblador por otro lado solo puede mejorar el desempeno en un factor de 10 Muestra cuan elusiva la mejora de desempeno puede ser el solo mejorar el desempeno en una subrutina puede exponer cuellos de botella en otras Tambien demuestra las mejoras de desempeno usando instrucciones en ensamblador especificas del procesador en comparacion a optimizaciones con lenguaje ensamblador usado en general en varios procesadores Otra leccion que Abrash ofrece es como las mejoras de desempeno obtenidas micro optimizaciones pueden desaparecer o incluso hacer el programa mas lento Fue capaz de mejorar la velocidad de sus programas al contar cuidadosamente los ciclos del reloj del procesador en cada instruccion para luego ordenarlas de tal forma que usaran el menor numero de ciclos posible aunque el numero de ciclos de reloj de cada instruccion cambiaba con cada nueva implementacion de la arquitectura x86 y como resultado de esto los beneficios que obtenia en velocidad se perdian de una generacion de procesadores a otra Por ejemplo la instruccion orientada en bit XOR EAX EAX el ejemplo anterior esta en la sintaxis de ensamblador usado por Intel era la manera mas rapida para establecer un registro a cero en las primeras generaciones de los procesadores x86 pero la mayoria del codigo es generado por compiladores y los compiladores rara vez generan instrucciones XOR asi que los disenadores decidieron mover las instrucciones generadas por el compilador que se usaban mas frecuentemente al principio de la logica de decodificacion haciendo que la instruccion literal MOV EAX 0 se ejecutara mas rapido que la instruccion XOR Aun asi el codigo ensamblador que es cuidadosamente optimizado en general se ejecutara bien en procesadores x86 mas recientes incluso sin optimizar para las nuevas arquitecturas La razon es que las politicas de optimizacion cambian gradualmente entre arquitecturas asi que varias optimizaciones que se asumen validas en arquitecturas anteriores siguen funcionando en arquitecturas nuevas por ejemplo la aritmetica de enteros es mucho mas rapida que la aritmetica de punto flotante o el minimizar el acceso a memoria para maximizar el uso de registros En 1997 el libro Graphics Programming Black Book 5 6 fue publicado es una coleccion de sus articulos cuando escribia para la revista Dr Dobb s sobre su trabajo en el subsistema de graficos para Quake 1 Actualmente se encuentra disponible de manera gratuita en la pagina web de la revista Referencias Editar lt references gt 1 2 6 3 5 4 a b Hague James The Giant List of Classic Game Programmers a b Abrash Michael 1 de febrero de 1996 Ramblings in Realtime www drdobbs com Consultado el 10 de julio de 2010 a b Hague James 18 de febrero de 2008 Five Memorable Books About Programming prog21 dadgum com Consultado el 10 de julio de 2010 a b Abrash Michael 8 de diciembre de 1994 Zen of Code Optimization The Ultimate Guide to Writing Software That Pushes PCs to the Limit Coriolis Group Books ISBN 978 1 883577 89 6 a b Abrash Michael julio de 1997 Graphics Programming Black Book Coriolis Group Books ISBN 978 1 57610 174 2 a b Abrash Michael 1 de noviembre de 2001 Graphics Programming Black Book www drdobbs com high performance computing Consultado el 10 de julio de 2010 Enlaces externos EditarRamblings in Valve Time El blog oficial de Michael Abrash en ingles Ramblings in Realtime by Michael Abrash descripcion detallada de la programacion del motor grafico del juego Quake en ingles version PDF Graphics Programming Black Book by Michael Abrash version HTML y ebook 40 minutes with Michael Abrash of Valve Software Entrevista en formato audio en ingles con Michael Abrash en la convencion QuakeCon 2012 en la que se habla de su carrera y su trabajo en Valve Datos Q838831 Obtenido de https es wikipedia org w index php title Michael Abrash amp oldid 124044264, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos