Difference between revisions of "Arquitectura de computadores"

From Supercomputación y Cálculo Científico UIS
 
(16 intermediate revisions by the same user not shown)
Line 6: Line 6:
 
[https://sites.google.com/site/carlosjaimebh/ Carlos Jaime Barrios Hernández] - ( c b a r r i o s  @   u i s . e d u . c o )
 
[https://sites.google.com/site/carlosjaimebh/ Carlos Jaime Barrios Hernández] - ( c b a r r i o s  @   u i s . e d u . c o )
  
Pablo Josue Rojas Yepes
+
Luis Alejandro Torres Niño -
  
 
Auxiliatura Técnica-Académica : Equipo de Ingenieria de Supercomputación y Cálculo Científico
 
Auxiliatura Técnica-Académica : Equipo de Ingenieria de Supercomputación y Cálculo Científico
Line 92: Line 92:
 
===='''Presentación del Curso''':====
 
===='''Presentación del Curso''':====
  
*'''[http://wiki.sc3.uis.edu.co/index.php/File:PresArq-1b-2023.pdf General Presentation of the Computer Architecture]'''
+
*'''[http://wiki.sc3.uis.edu.co/index.php/File:PresArq-2-2024Beta.pdf General Presentation of the Computer Architecture]'''
  
 
===='''Del Tema 1 del Contenido:'''====
 
===='''Del Tema 1 del Contenido:'''====
Line 106: Line 106:
 
*[http://wiki.sc3.uis.edu.co/index.php/File:InstrucArchi.pdf '''Instrucciones Computacionales''']
 
*[http://wiki.sc3.uis.edu.co/index.php/File:InstrucArchi.pdf '''Instrucciones Computacionales''']
 
*[[:File:MemoryH.pdf|Memory Hierarchy]]
 
*[[:File:MemoryH.pdf|Memory Hierarchy]]
*[http://wiki.sc3.uis.edu.co/index.php/File:ClusterMultiCores.pdf '''Multinúcleos y Paralelísmo: Una introducción''']
+
*'''Multinúcleos y Paralelísmo:'''
 +
**[http://wiki.sc3.uis.edu.co/index.php/File:ClusterMultiCores.pdf '''Una introducción''']
 +
**[[:File:ArchiParSca2024.pdf|Arquitecturas Escalables y Paralelas]]
 
*'''Introducción al Ensamblador'''
 
*'''Introducción al Ensamblador'''
 
**[[:File:Ensambla20.pdf|'''Presentación General y Fundamentos''']]
 
**[[:File:Ensambla20.pdf|'''Presentación General y Fundamentos''']]
Line 126: Line 128:
 
Es importante que el curso, es un curso presencial, el cual se evaluará de la siguiente manera:  
 
Es importante que el curso, es un curso presencial, el cual se evaluará de la siguiente manera:  
  
#'''Taller Individual (15%)''' (Fecha de Realización 13 de Marzo 2024)
+
#'''Taller Individual (15%)'''
#'''Entrega de Prácticas  (30%)''' (Correspondientes a las prácticas propuestas  desde el Jueves 8 de Febrero  hasta el Jueves 9 de Mayo de 2024)
+
#'''Entrega de Prácticas  (30%)'''
 
#'''Proyecto de Clase''' (En Grupos) '''(40%)'''  
 
#'''Proyecto de Clase''' (En Grupos) '''(40%)'''  
#*Taller de Informe de Avance (Bonus +2) (Fecha de realización  14 de Marzo de 2024 en el horario del curso)
+
#*Taller de Informe de Avance (Bonus +2)
#*White Paper (20%) (Fecha de Entrega: 24 de Mayo de 2024)
+
#*White Paper (20%) (Por definir)
#*Poster Digital (20%) (Presentación: Miércoles 29 de Mayo  de 2024 desde 6:00 a.m hasta las 9:00 a.m.  cursos A1 y A2)
+
#*Poster Digital (20%) (Por definir)
#'''Evaluación Individual Final  (15%)''' (Fecha De Inicio Jueves 2 de Mayo, Limite de Realización Jueves 30 de Mayo de  2024 )
+
#'''Evaluación Individual Final  (15%)'''
 
#'''BONUS (+0,3 máximo  para cada entrega)'''  (Quices, Rendimiento en el grupo de trabajo, asistencia a clase)
 
#'''BONUS (+0,3 máximo  para cada entrega)'''  (Quices, Rendimiento en el grupo de trabajo, asistencia a clase)
  
 
===='''(15%) Taller Individual 1 - Primera Nota -'''====
 
===='''(15%) Taller Individual 1 - Primera Nota -'''====
'''(Fecha y Hora Limite de Entrega: <u>Jueves 14 de Marzo 23:59</u> (GMT - 5 Bogota/Lima Time)'''
+
'''(Realización : Semana del 26 al 30 de agosto)'''
  
'''(Tiempo previsto 90 Minutos)'''
+
'''Fecha y Hora Limite de Entrega: 30 de agosto de 2024 a las 9:30 (GMT - 5 Bogota/Lima Time)'''
  
Este taller individual, se realizará de manera escrita-remota, siguiendo las características de una evaluación tradicional y deberá entregarse el 14 de marzo via correo electrónico al correo electrónico del profesor, como un documento adjunto en *.pdf nombrado con la inicial de su primer nombre y código, por ejemplo, si su código es 941108 y su nombre es Cecilia, sería '''''C_9122.08.pdf''''' el archivo en el que están las respuestas. El asunto del correo, deberá ser: Entrega Taller Individual 1 - (su código de estudiante) y en el texto del correo por favor colocar, su nombre completo, código de estudiante y curso al que pertenece (si es A1 o A2).
+
Este taller individual, se realizará de manera escrita-remota, siguiendo las características de una evaluación tradicional y deberá entregarse el viernes 30 de agosto de 2024,  via correo electrónico al correo electrónico del profesor, como un documento adjunto en *.pdf nombrado con la inicial de su primer nombre y código, por ejemplo, si su código es 941108 y su nombre es Cecilia, sería '''''C_941108.pdf''''' el archivo en el que están las respuestas. El asunto del correo, deberá ser: Entrega Taller Individual 1 - (su código de estudiante) y en el texto del correo por favor colocar, su nombre completo, código de estudiante y curso al que pertenece (si es A1, A2 o E2). Este documento debe enviarse en tamaño carta y no tener más de 6 páginas (recomendación: llegue a máximo una página por respuesta).
  
El objetivo de este taller, más allá de cumplir con la obligación de la primera nota, es observar, dentro del estado del arte actual en computación como la arquitectura de computadores esta implicada (y mas desde nuestro rol como ingenieros) y como cada uno de ustedes se posiciona ante el impacto y trascendencia de este estado del arte y perspectivas.
+
El objetivo de este taller, más allá de cumplir con la obligación de la primera nota, es observar, dentro del estado del arte actual en computación como la arquitectura de computadores esta implicada (y mas desde nuestro rol como ingenieros) y como cada uno de ustedes se posiciona ante el impacto y trascendencia de este estado del arte y perspectivas. Esta dividido en dos partes y siga la instrucciones de entrega de las preguntas dadas para cada una de las partes.  Recuerde que debe buscar otras referencias
  
La siguiente intervención en la Cumbre Mundial de Gobierno, realizada en Dubai el 12 de febrero 2024, se realizó una conversación entre [[wikipedia:Jensen_Huang|Jensen Huang]],  presidente de NVIDIA, con [[wikipedia:Omar_Al_Olama|Omar Al Olama]], ministro de Inteligencia Artificial de los Emiratos Árabes Unidos, para discutir la coexistencia armoniosa del presente con el futuro a través de tecnología de punta. Este diálogo tiene como objetivo brindar información sobre los logros de los hitos tecnológicos que cierran la brecha entre las capacidades actuales y las visiones futuristas, creando un mundo donde la tecnología sea un facilitador para todos, reduciendo la brecha digital y allanando el camino para un futuro inclusivo. Esta intervención puede verse en: https://youtu.be/iUOrH2FJKfo?si=3EYbyZRQm4OprL_G denominada '''''Who Will Shape the Future of AI?''''' dura 24 minutos.
+
'''Parte 1: Computación Analógica'''
  
Teniendo en cuenta este panel, que puede ver desde ya en su casa (la entrevista es un un único video en Youtube que esta en inglés, pero puede usar las opciones de traducción de la plataforma, disponibles), responda las cinco (5) preguntas planteadas siguientes:
+
Para llegar a la computación digital (y en si a la tecnología computacional que hoy conocemos), la humanidad ha pasado por caminos que no son lineales. Si bien, lo que conocemos (y en lo que esta particularmente basado este curso) en computación digital nos ha servido durante decadas, el auge de la inteligencia artificial y la necesidad de tratar problemas en ciencia y tecnología así como implementaciones actuales (desde lo neuromorfico hasta lo cuántico) exige un tipo de computador totalmente nuevo: el analógico. El siguiente video de divulgación (en español), denominado '''''El Futuro de las Computadoras Será Radicalmente Diferente,''''' del sitio Veritasium creado por Derek Muller https://youtu.be/qNtxODk_Lmk?si=cL3LbhzMAbjFpQgA trata en un poco mas de 20 minutos sobre computación análogica.
  
Si su código de estudiante termina en cero o dígito par:
+
'''Parte 2: Inteligencia Artificial'''
  
#¿Por qué Jensen Huang dice que los avances tecnológicos mantendrán bajo control los costos de la IA?
+
La siguiente intervención en la Cumbre Mundial de Gobierno, realizada en Dubai el 12 de febrero 2024, se realizó una conversación entre [[wikipedia:Jensen_Huang|Jensen Huang]], presidente de NVIDIA, con [[wikipedia:Omar_Al_Olama|Omar Al Olama]], ministro de Inteligencia Artificial de los Emiratos Árabes Unidos, para discutir la coexistencia armoniosa del presente con el futuro a través de tecnología de punta. Este diálogo tiene como objetivo brindar información sobre los logros de los hitos tecnológicos que cierran la brecha entre las capacidades actuales y las visiones futuristas, creando un mundo donde la tecnología sea un facilitador para todos, reduciendo la brecha digital y allanando el camino para un futuro inclusivo. Esta intervención puede verse en: https://youtu.be/iUOrH2FJKfo?si=3EYbyZRQm4OprL_G denominada '''''Who Will Shape the Future of AI?''''' dura 24 minutos.
#¿Por qué es importante regular la IA y como hacerlo? Si tiene nuevos elementos que no considero Jensen Huang, menciónelos y justifíquelos.
 
#Jensen Huang, afirma que nuestro trabajo (como ingenieros y científicos de computación) es crear tecnología computacional para que cualquiera pueda programar y sacarle provecho a esa tecnología... al desarrollar la idea en el panel, se plantean aspectos importantes en cuanto al foco de la educación tanto en los niños, como en los adolescentes y adultos, opuesto a lo que se esperaría que planteara el CEO de una de las compañías mas importantes de tecnología. Resuma con sus palabras este foco y ¿esta de acuerdo con ello? Justifique su respuesta y de ser necesario, agregue nuevos elementos.
 
#En la conversación, Jensen afirma que lo primero que todo país debería hacer es construir infraestructura y no trabajar en una aplicación específica. Si se quieres desarrolla energía, debes construir generadores, si quiere alimentos, debes construir granjas y si se quiere inteligencia artificial, debes construir infraestructura. No es caro, pero hay empresas que quieren asustar a todo el mundo, cuando en realidad son capacidades que se pueden comprar, y cada país es capaz de hacerlo. ¿Esta de acuerdo con esta afirmación? Justifique su respuesta y de elementos nuevos si es necesario para argumentar su respuesta.
 
#Desde el punto de vista computacional, Jensen afirma que NVIDIA quiere democratizar la tecnología para lograr seguridad y compatibilidad. Como futuro ingeniero, ¿como usted garantizaría esa democratización? Justifique su respuesta y de ser necesario agregue nuevos elementos.
 
  
Si su código de estudiante termina en dígito impar:
+
Teniendo en cuenta ambos videos , que pueden ver desde ya en su casa (la entrevista es un un único video en Youtube que esta en inglés,  pero puede usar las opciones de traducción de la plataforma, disponibles), responda las cinco (5) preguntas planteadas siguientes:
  
#¿Qué opina del consejo que da Jensen Huang que  los países deben ser dueños de su inteligencia nacional y no permitir que nadie más lo haga”? ¿Por qué el afirma eso?
+
<u>Si su código de estudiante termina en cero o dígito par</u>:
#En la conversación, se plantea la siguiente era de la IA y como tanto el desarrollo Open Source tanto en hardware como en software es importante para democratizar el conocimiento, en este caso IA. Buscando esa democratización, ¿la arquitectura de computadores esta siendo flexible, disponible y robusta, para garantizar esa siguiente era de la IA?
 
#Jensen Huang, afirma que nuestro trabajo (como ingenieros y científicos de computación) es crear tecnología computacional para que cualquiera pueda programar y sacarle provecho a esa tecnología... al desarrollar la idea en el panel, se plantean aspectos importantes en cuanto al foco de la educación tanto en los niños, como en los adolescentes y adultos, opuesto a lo que se esperaría que planteara el CEO de una de las compañías mas importantes de tecnología. De acuerdo a esto, ¿que conocimiento debe tener una persona que se dedique a la ingeniería y ciencias de la computación para que aquello que puede ser complejo, como es la tecnología computacional, pueda ser democratizado y de uso general?.  Justifique su respuesta y de ser necesario, agregue nuevos elementos.
 
#¿Por qué Jensen afirma que “el desarrollo actual exige (democratización de la tecnología)...  que hay investigadores de varias universidades trabajando en esta dirección y, por lo tanto, se debe aprovechar la experiencia de los investigadores para acelerar el nivel de innovación, lo que hará que el costo de compra y venta sea mucho menor”?. Argumente su respuesta, contextualizándolo a la Universidad Industrial de Santander y el departamento.
 
#Desde el punto de vista computacional, Jensen afirma que NVIDIA quiere democratizar la tecnología para lograr seguridad y compatibilidad. Como futuro ingeniero, ¿Usted observa que en la UIS se garantiza los conocimientos básicos y el contexto para alcanzar esa democratización? Justifique su respuesta y de ser necesario agregue nuevos elementos.
 
  
'''Recomendaciones:'''
+
'''De la parte 1:'''  
  
*Lea todas las preguntas antes de responderlas.
+
#¿Que tan diferente es la computación analógica respecto a la digital y cuales son las desventajas de cada una de ellas?
*Responda únicamente lo que se le pregunta (no de vueltas).
+
#Teniendo en cuenta las materias vista en la carrera de ingeniería de sistemas e informática de la Universidad Industrial de Santander, ¿cree que se tienen los conocimientos de base para entrar en el mundo de cualquier computación? (Independiente de que su respuesta sea positiva o negativa, argumente y justifique su respuesta).
*Justifique sus respuestas.
 
*No se están pidiendo opiniones, sino argumentos. Recuerde que la diferencia entre la las opiniones es que son consideraciones, juicios o '''''impresiones personales o subjetivas,''''' de lo que alguien expresa sobre un hecho. En otras palabras, una opinión es una expresión subjetiva de creencias, sentimientos o juicios personales, que varía de una persona hacia otra o incluso, puede darse por la misma persona en tiempos diferentes y ser contradictoria. En cuanto a los argumentos son razonamientos que sirven para expresarse a favor o en contra de una idea o punto de vista, '''''están basados en hechos probados y evidencia'''''. En síntesis, un argumento es una presentación lógica de hechos o razones expuestos de forma ordenada para respaldar una afirmación y soportada por evidencia.
 
*Tenga presente tanto la ortografía como los signos de puntuación.
 
*Escriba claramente y cada respuesta en no más de (7) siete renglones.
 
*Recuerde que es de carácter individual, no puede haber dos respuestas iguales, cualquier intento de fraude simplemente se anulara el taller y se hará la respectiva anotación disciplinaria. Si durante el taller, no se detectó el fraude, pero al revisar las respuestas están tienen similitud comprobable en la manera de responderse, la nota se dividirá por la cantidad de personas que hicieron la copia, sin indagar cual fue la original.
 
*No use Copilot, You, ChatGPT o similares ya que estan dando respuestas erróneas pues en el entrenamiento previo toma ''opiniones'' pasadas de Jensen Huang y no lo que se dice en la entrevista y en algunos casos fuera de contexto. En este taller buscamos su posición crítica como futuros ingenieros de sistemas. Recuerden, ustedes crean tecnología, programan, optimizan y desarrollan inteligencias artificiales.
 
*Puede (y seguramente debe) usar otras referencias. Agregue las referencias de consulta adicionales al videos (bibliografía, otros enlaces, blogs o sitios que pueden ser fuentes de información.)
 
  
 +
'''De la parte 2:'''
  
'''Ejemplo del semestre  1-2023'''
+
#¿Por qué Jensen Huang dice que los avances tecnológicos mantendrán bajo control los costos de la IA? ¿Es cierto eso? Justifique su respuesta.
 +
#Jensen Huang, afirma que nuestro trabajo (como ingenieros y científicos de computación) es crear tecnología computacional para que cualquiera pueda programar y sacarle provecho a esa tecnología... al desarrollar la idea en el panel, se plantean aspectos importantes en cuanto al foco de la educación tanto en los niños, como en los adolescentes y adultos, opuesto a lo que se esperaría que planteara el CEO de una de las compañías mas importantes de tecnología. Resuma con sus palabras este foco y ¿esta de acuerdo con ello? Justifique su respuesta y de ser necesario, agregue nuevos elementos.
 +
#En la conversación, Jensen afirma que lo primero que todo país debería hacer es construir infraestructura y no trabajar en una aplicación específica. Si se quieres desarrolla energía, debes construir generadores, si quiere alimentos, debes construir granjas y si se quiere inteligencia artificial, debes construir infraestructura. No es caro, pero hay empresas que quieren asustar a todo el mundo, cuando en realidad son capacidades que se pueden comprar, y cada país es capaz de hacerlo. ¿Esta de acuerdo con esta afirmación? Justifique su respuesta y de elementos nuevos si es necesario para argumentar su respuesta.
  
'''(Tiempo previsto 45 Minutos)'''
+
<u>Si su código de estudiante termina en dígito impar:</u>
  
Este taller individual, se realizará de manera escrita, siguiendo las características de una evaluación tradicional escrita y deberá entregarse el 12 de abril, en el horario del curso. El objetivo de este taller, más allá de cumplir con la obligación de la primera nota, es observar, dentro del estado del arte actual en computación como la arquitectura de computadores se ve impactada y como cada uno de ustedes se posiciona ante este impacto.
+
'''De la parte 1:'''
  
La siguiente entrevista disponible en youtube: https://www.youtube.com/watch?v=UHVPU2x3Rjk , denominada '''''"How Machine Learning Changed Computer Architecture Design (David Patterson)"''''' fue realizada hace un par de años a David Paterson y plantea una discusión interesante acerca de como la Inteligencia Artificial cambió el diseño de la arquitectura de computadores. David Patterson es ganador del premio [https://amturing.acm.org/ ACM-Turing] (el más importante en computación) en el 2017 y profesor de informática en la Universidad de California en Berkeley. Es conocido por sus contribuciones pioneras a la arquitectura de procesador RISC utilizada por el 99 % de los chips nuevos en la actualidad y por la creación conjunta de almacenamiento RAID. El impacto que estas dos líneas de investigación y desarrollo han tenido en nuestro mundo es inconmensurable. También es uno de los grandes educadores de informática en el mundo. Su libro con John Hennessy "Arquitectura informática: un enfoque cuantitativo" , el cual utilizamos en este curso como uno de los libros guía.
+
#¿Como se enlaza la computación analógica con los nuevos sistemas computaciones y usos que han estallado como el caso de la Inteligencia artificial? Argumente y Justifique su respuesta.
 +
#Si usted hará parte de un equipo de implementara computación analógica. ¿Que conocimientos de base deberá tener? ¿Cree que los adquiere durante la carrera de pregrado que esta cursando? (Argumente y justifique su respuesta).
  
Teniendo en cuenta la entrevista en cuestión, que puede ver desde ya en su casa (la entrevista es un un único video de 10 minutos y 30 segundos que esta en inglés,  pero puede usar las opciones de traducción de la plataforma, disponibles), responda las tres preguntas en el tablero de manera individual, en no más de quince (15) líneas y no olvide hacerlo en letra legible, preferiblemente con lapicero (bolígrafo) . Cada una de ellas tiene un peso de 5%. 
+
'''De la parte 2:'''
  
No olvide marcar la hoja de entrega del taller correctamente: Nombre completo, curso al que pertenece (A1 o A2) y código de estudiante.  
+
#¿Qué opina del consejo que da Jensen Huang que  los países deben ser dueños de su inteligencia nacional y no permitir que nadie más lo haga”? ¿Por qué el afirma eso?
 +
#En la conversación, se plantea la siguiente era de la IA y como tanto el desarrollo Open Source tanto en hardware como en software es importante para democratizar el conocimiento, en este caso IA. Buscando esa democratización, ¿la arquitectura de computadores esta siendo flexible, disponible y robusta, para garantizar esa siguiente era de la IA?
 +
#Desde el punto de vista computacional, Jensen afirma que NVIDIA quiere democratizar la tecnología para lograr seguridad y compatibilidad. Como futuro ingeniero, ¿como usted garantizaría esa democratización? Justifique su respuesta y de ser necesario agregue nuevos elementos.
  
'''Las preguntas del tablero:'''
+
'''Recomendaciones:'''
 
 
'''Responda de manera ordenada clara y concreta, justificando su respuesta (con sus palabras) y de acuerdo EXCLUSIVAMENTE a la entrevista, tres (3) de las siguientes (5) preguntas. No olvide que debe colocar el enunciado de la pregunta seleccionada.'''
 
 
 
#Según Patterson, ¿Cual fué el principal reto para los diseñadores de computadores en los años 80's y 90's y por qué?
 
#¿Qué se hizó en arquitectura de computadores (o qué se agregó a las arquitecturas de computadores  de propósito general existentes, ante la ralentización de la Ley de Moore) para soportar la multiplicación de matrices que es fundamental para M''achine Learning''?
 
#¿Por qué Patterson dice que ''Machine Learning'' incrementa la demanda del uso del cómputo?
 
#¿A qué se refiere Patterson (que según él, comparte ese concepto con Hennessy) a la nueva era dorada del cómputo (''New Golden Age in Computing''), en la que según él, nos encontramos? ¿Usted esta de acuerdo con esta visión?
 
#¿Por qué según Patterson, al observar lo que se hace para facilitar el uso de Machine Learning, existe una ruptura a pesar del entusiasmo en el desarrollo de hardware, precisamente entre los que proponen nuevo hardware dirigido hacia Machine Learning y los que buscan usar  M''achine Learning,'' con por ejemplo'','' herramientas como Tensorflow o Pytorch?
 
 
 
'''Recomendaciones:'''
 
  
 +
*Vea los dos videos antes de responder cada parte de las preguntas.
 
*Lea todas las preguntas antes de responderlas.
 
*Lea todas las preguntas antes de responderlas.
 
*Responda únicamente lo que se le pregunta (no de vueltas).
 
*Responda únicamente lo que se le pregunta (no de vueltas).
 +
*Justifique y argumente sus respuestas.
 +
*No se están pidiendo opiniones, sino argumentos. Recuerde que la diferencia entre la las opiniones es que son consideraciones, juicios o '''''impresiones personales o subjetivas,''''' de lo que alguien expresa sobre un hecho. En otras palabras, una opinión es una expresión subjetiva de creencias, sentimientos o juicios personales, que varía de una persona hacia otra o incluso, puede darse por la misma persona en tiempos diferentes y ser contradictoria. En cuanto a los argumentos son razonamientos que sirven para expresarse a favor o en contra de una idea o punto de vista, '''''están basados en hechos probados y evidencia'''''. En síntesis, un argumento es una presentación lógica de hechos o razones expuestos de forma ordenada para respaldar una afirmación y soportada por evidencia.
 
*Tenga presente tanto la ortografía como los signos de puntuación.
 
*Tenga presente tanto la ortografía como los signos de puntuación.
*Escriba claramente.
+
*Escriba claramente y cada respuesta en no más de (12) doce líneas.
*Recuerde que es de carácter individual, no puede haber dos respuestas iguales, cualquier intento de fraude simplemente se anulara el taller y se hará la respectiva anotación disciplinaria. Si durante el taller, no se detectó el fraude, pero al revisar las respuestas están tienen similitud comprobable en la manera de responderse, la nota se dividirá por la cantidad de personas que hicieron la copia, sin indagar cual fue la original.
+
*Recuerde que es de carácter individual, no puede haber dos respuestas iguales con sus compańeros, cualquier intento de fraude simplemente se anulara el taller y se hará la respectiva anotación disciplinaria. Si durante el taller, no se detectó el fraude, pero al revisar las respuestas están tienen similitud comprobable en la manera de responderse, la nota se dividirá por la cantidad de personas que hicieron la copia, sin indagar cual fue la original.
 
+
*No use Copilot, You, ChatGPT o similares ya que están dando respuestas erróneas pues en el entrenamiento previo, lo que responde del video de computación cuántica esta fuera del contexto del video. En el caso de la parte 2,  toma ''opiniones'' pasadas de Jensen Huang y no lo que se dice en la entrevista y en algunos casos fuera de contexto. En este taller buscamos su posición crítica como futuros ingenieros de sistemas. Recuerden, ustedes crean tecnología, programan, optimizan y desarrollan inteligencias artificiales, no simplemente le creen a la tecnología.
Nota Importante: Si desea ver la entrevista completa (1 hora :49 minutos :50 segundos ), puede verla en el mismo canal en: https://youtu.be/naed4C4hfAg
+
*Puede (y seguramente debe) usar otras referencias. Agregue las referencias de consulta adicionales al videos (bibliografía, otros enlaces, blogs o sitios que pueden ser fuentes de información.)
  
 
===='''(30%) Laboratorios y Trabajos Prácticos'''====
 
===='''(30%) Laboratorios y Trabajos Prácticos'''====
Line 218: Line 204:
  
 
====='''(20%) Artículo de Proyecto de Clase'''=====
 
====='''(20%) Artículo de Proyecto de Clase'''=====
'''<u>Fecha de Entrega: 24 de Mayo de 2024 (23:59 GMT -5 Horario de Bogotá, Colombia)</u>'''
+
'''<u>Fecha de Entrega: Por definir (23:59 GMT -5 Horario de Bogotá, Colombia)</u>'''
  
 
El artículo del proyecto, es una contribución dirigida a '''un lector especializado en el área''', en este caso, ingenieros de sistemas y computación que conocen de arquitectura de computadores, que será en un formato de [[wikipedia:White_paper|whitepaper]] o articulo técnico dirigido a personal técnico de ingeniería para tomar de decisiones. Este artículo, como cualquier artículo técnico-científico, contará con las partes fundamentales de un artículo (pueden guiarse con los artículos científicos o técnicos de sus compañeros de semestres pasados u otras fuentes): desde el resumen del mismo, la introducción, contenido, conclusión, discusión si es necesaria y por supuesto las fuentes de información más allá del contenido de base dado para la realización del trabajo. En el artículo mismo se mide la calidad del trabajo realizado.
 
El artículo del proyecto, es una contribución dirigida a '''un lector especializado en el área''', en este caso, ingenieros de sistemas y computación que conocen de arquitectura de computadores, que será en un formato de [[wikipedia:White_paper|whitepaper]] o articulo técnico dirigido a personal técnico de ingeniería para tomar de decisiones. Este artículo, como cualquier artículo técnico-científico, contará con las partes fundamentales de un artículo (pueden guiarse con los artículos científicos o técnicos de sus compañeros de semestres pasados u otras fuentes): desde el resumen del mismo, la introducción, contenido, conclusión, discusión si es necesaria y por supuesto las fuentes de información más allá del contenido de base dado para la realización del trabajo. En el artículo mismo se mide la calidad del trabajo realizado.
Line 224: Line 210:
 
'''<u>Requisitos para el artículo:</u>'''
 
'''<u>Requisitos para el artículo:</u>'''
  
*'''Mínimo (8) ocho y máximo (10) diez páginas en Español. El  Título y Resumen (abstract) en español y en&nbsp; inglés (máximo 10 lineas para cada uno de los idiomas). NO OLVIDE DARLE UN TITULO QUE DEBE SER DIFERENTE AL TITULO DE LA ASIGNACIÓN PERO QUE GENERE UN INTERÉS A LA LECTURA (en Español y en inglés). Incluye gráficas, referencias, tablas y figuras.'''
+
*'''Mínimo (8) ocho y máximo (10) diez páginas en Español. El  Título y Resumen (abstract) en español y en&nbsp; inglés (máximo 10 lineas para cada uno de los idiomas). NO OLVIDE DARLE UN TITULO QUE DEBE SER DIFERENTE AL TITULO DE LA ASIGNACIÓN PERO QUE GENERE UN INTERÉS A LA LECTURA (en Español y en inglés). El mínimo y el máximo de páginas Incluye gráficas, referencias, tablas y figuras.'''
*'''Formato IEEE en <u>UNA columna</u> para series de conferencias puede guiarse con el siguiente enlace: http://www.ieee.org/conferences_events/conferences/publishing/templates.html'''
+
*'''Formato IEEE en <u>UNA columna</u> para series de conferencias puede guiarse con el siguiente enlace, teniendo en cuenta dentro de ese template tanto el tipo de fuente utilizada como el tamaño de página, espacio, etc.: http://www.ieee.org/conferences_events/conferences/publishing/templates.html'''
*El archivo se enviará al correo del profesor con copia a soporte auxiliar, sin olvidar en el texto del correo, colocar los nombres completos de los autores, código y grupo del curso al que pertenecen (A1, A2, B1...). Debe enviarse desde el correo de uno de los autores.
+
*El archivo se enviará al correo principal del profesor, sin olvidar en el texto del correo, colocar los nombres completos de los autores, código y grupo del curso al que pertenecen (A1, A2, B1...). Debe enviarse solo desde el correo de uno de los autores.
*El artículo debe entregarse en '''un único archivo .pdf''' , indicando en el asunto: '''ENTREGA ARTICULO FINAL ARQUITECTURA 1-2024'''. Observe la fecha y hora desde cuando se van a recibir los artículos y hasta cuando se recibirán. Después de dicha fecha y hora límite no se aceptarán artículos.
+
*El artículo debe entregarse en '''un único archivo .pdf''' , indicando en el correo de entrega el asunto: '''ENTREGA ARTICULO FINAL ARQUITECTURA 1-2024'''. Observe la fecha y hora desde cuando se van a recibir los artículos y hasta cuando se recibirán. Después de dicha fecha y hora límite no se aceptarán artículos.
 
*Un software anti plagio o plagiarismo se utilizará para el artículo, recuerde tener cuidado con el plagio.
 
*Un software anti plagio o plagiarismo se utilizará para el artículo, recuerde tener cuidado con el plagio.
*Recuerde es un artículo técnico, no un artículo científico.
+
*<u>Recuerde es un artículo técnico, no un artículo científico.</u>
  
====='''(15%) Presentación del Proyecto del Proyecto de Clase'''=====
+
====='''(20%) Presentación del Proyecto del Proyecto de Clase'''=====
'''<u>Presentación: Miércoles 29 de Mayo  de 2024 desde 6:00 a.m hasta las 9:00 a.m.  cursos A1 y A2,</u>'''
+
'''<u>Presentación: Por definir,</u>'''
  
 
La presentación del proyecto de clase será en vivo, durante la sesión de los jueves, iniciando mas temprano para que todos los grupos se presenten, usando un poster digital.  
 
La presentación del proyecto de clase será en vivo, durante la sesión de los jueves, iniciando mas temprano para que todos los grupos se presenten, usando un poster digital.  
Line 246: Line 232:
 
*'''Bonus: Su poster Digital, al ser digital, puede contener animaciones.'''
 
*'''Bonus: Su poster Digital, al ser digital, puede contener animaciones.'''
  
'''<u>Características de la Presentación Oral: (Desde las 6:00 a.m. hasta las 9:00 a.m. (GMT -5 Bogota Time)</u>'''
+
'''<u>Características de la Presentación Oral: (Por definir. (GMT -5 Bogota Time)</u>'''
  
 
Esta presentación oral se realiza para presentar en un formato rápido, los puntos mas importantes y conclusiones del trabajo final. Tenga en cuenta tanto el manejo del tiempo como el hecho que todo lo que se diga en esa presentación (preguntas del profesor o de los estudiantes) puede entrar en la evaluación final.
 
Esta presentación oral se realiza para presentar en un formato rápido, los puntos mas importantes y conclusiones del trabajo final. Tenga en cuenta tanto el manejo del tiempo como el hecho que todo lo que se diga en esa presentación (preguntas del profesor o de los estudiantes) puede entrar en la evaluación final.
Line 266: Line 252:
 
'''Aspectos que se tendrán en cuenta en el proyecto:'''
 
'''Aspectos que se tendrán en cuenta en el proyecto:'''
  
1.     Soporte hacia los requerimientos funcionales (ver la diapositiva sobre requerimientos funcionales a tener en cuenta)
+
1.     Soporte hacia los requerimientos funcionales y comprensión de las preguntas dadas (ver la diapositiva sobre requerimientos funcionales a tener en cuenta)
  
 
2.     Original y novedad de la solución propuesta.
 
2.     Original y novedad de la solución propuesta.
  
3.     Eficiencia energética y facilidad en la implementación.
+
3.     Organización y presentación de los resultados.
 +
 
 +
4.     Métricas adecuadas usadas y estandáres.
 +
 
 +
5.     Aspectos ambientales y éticos.
 +
 
 +
===='''PROYECTOS FINALES ARQUITECTURA DE COMPUTADORES 1-2024'''====
 +
Los proyectos finales planteados para este semestre, corresponden a ejercicios basados en los con casos de uso, presentes en varias fuentes, como en  el libro guía Patterson and Hennesy, Computer Architecture; A Quantitative Approach, o el libro Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface), disponibles en diferentes sitios, en la biblioteca, pero también en el sitio del curso, en la sección de bibliografía y fuentes de información. Igualmente, se ha usado información del sitio recomendado en el curso para hacer comparaciones: https://www.cpubenchmark.net/ y de las diapositivas utilizadas. Sin embargo, recuerde que debe buscar nuevas fuentes de información necesarias, como la documentación dada por los fabricantes. Tenga en cuenta que debe observar las características técnicas arquitecturales de los elementos dados y si es necesario, resaltar características especiales que tengan esos elementos y la integración de los mismos en un sistema.
 +
 
 +
Si asistió a las sesiones teóricas y participó activamente en el desarrollo de los talleres prácticos tiene el conocimiento de base para atacar el proyecto asignado. La asignación es por orden ascendente, es asi que para el proyecto 1 se asigna para el equipo. 
 +
 
 +
'''Proyecto 1 : Equipo 1.''' (Basado en los Casos de Estudio y Ejercicios por Diana Franklin en el libro Patterson and Hennesy, Computer Architecture; A Quantitative Approach,).  Caso de Estudio 2. Consumo de Energía en Sistemas de Cómputo (Página 63 de la Quinta Edición).
 +
 
 +
La tabla siguiente muestra el consumo de energía de varios componentes del sistema informático. En este ejercicio, se mira cómo el disco duro afecta el consumo de energía del sistema.
 +
{| class="wikitable"
 +
|'''Componente'''
 +
|'''Producto'''
 +
|'''Rendimiento'''
 +
|'''Consumo de Energía'''
 +
|-
 +
|Procesador
 +
|AMD Ryzen Threadripper PRO 7995WX
 +
|Clockspeed: 2.5 GHz
 +
 
 +
Turbo Speed: 5.1 GHz
 +
|350 W (Media de Uso)
 +
|-
 +
|Memoria DRAM
 +
|Kingston KF548C38-32
 +
|Latencia: 51 ns
 +
|1.1 V
 +
|-
 +
|Disco Duro
 +
|Corsair MP700 PRO
 +
|Capacidad: 931.5 GB
 +
 
 +
Random Seek Read Write (IOPS 32KQD20): 3,805 Mbytes/Sec
 +
|11. 5 W
 +
|-
 +
|
 +
|Corsair MP700
 +
|Capacidad 1.8 TB
 +
 
 +
Random Seek Read Write (IOPS 32KQD20): 3,821 Mbytes/Sec
 +
|10.5 W
 +
|}
 +
'''Tabla de Especificaciones de Elementos'''
 +
 
 +
a.        Tenemos un sistema en desktop para uso especializado, y suponiendo la carga máxima para cada componente y una eficiencia de la fuente de alimentación del 80%, ¿qué potencia debe entregar la fuente de alimentación del servidor a un sistema con un chip AMD Ryzen Threadripper PRO 7995WX, de 2.5 Ghz, 94 Nucléos que soporta 128 hilos, y que se encuentra con una memoria RAM Kingston KF548C38-32 DDR4 y,  un disco duro Corsair MP700 PRO ?
 +
 
 +
b.        ¿Cuánta energía consumirá la unidad de disco duro Corsair MP700 PRO  de si está inactiva aproximadamente el 60% del tiempo?
 +
 
 +
c.        Dado que el tiempo para leer datos de una unidad de disco de duro Corsair MP700 PRO será aproximadamente el 75% del de un disco Corsair MP700, ¿en qué tiempo de inactividad del disco de Corsair MP700 PRO será igual el consumo de energía, en promedio, para los dos discos? ¿Cambiaría el disco?
 +
 
 +
Un factor crítico en el consumo de energía y su respectiva alimentación en cualquier tipo de sistema es la refrigeración. Como se sabe, si el calor no se elimina de la computadora de manera eficiente, los ventiladores devolverán aire caliente a la computadora, no aire frio. Entonces, las diferentes decisiones de diseño afectan la refrigeración necesaria y por tanto los costos del sistema.
 +
 
 +
d.        El sistema en cuestión se organiza en un servidor con un chasis determinado y un rack que disipa 14KW y vale US $7000 dólares. ¿Para la solución dada, de cuantas U debe ser el tamaño del servidor? ¿Cuánto seria la mínima capacidad de la fuente de poder principal por servidor para energizar lo mínimo del sistema dado?
 +
 
 +
e.        Teniendo en cuenta la información dada ¿Cuántos servidores cabrían en un chasis estándar (recuerde que la medida es la disipación en KW)?
 +
 
 +
f.           Describa un plantee una solución completa (sin uso de aceleradores, pero si una tarjeta de red y los elementos que hagan falta), mostrando un costo estimado, teniendo en cuenta los componentes mostrados en la tabla (por supuesto debe escoger un único disco duro especifico de los dos dados).
 +
 
 +
'''Proyecto 2. Equipo 2.''' (Basado en los Casos de Estudio y Ejercicios por Norma P. Jouppi, Naveen Muralimanohar, y Sheng LI en el libro Patterson and Hennesy, Computer Architecture; A Quantitative Approach).  Caso de Estudio 2. Poniendo todo junto: sistemas de memoria altamente paralelos (Página 133 de la Quinta Edición)'''.'''
 +
 
 +
El programa siguiente puede ser usado para evaluar el comportamiento de un sistema de memoria. Esta realizado en C y en MS Visual Studio. Principalmente busca tener una sincronización precisa y luego hacer que el programa recorra la memoria para invocar diferentes niveles de jerarquía.  Viendo la documentación es posible identificar que la primera parte es un procedimiento que utiliza una utilidad estándar para obtener una medida precisa de tiempo de CPU usuario. La segunda parte es un bucle anidado que se usa para leer y escribir en la memoria en diferentes pasos y para diferentes tamaños de caché. La tercera parte calcula los tiempos de la sobrecarga de un bucle anidado, únicamente restando los tieppos totales medidos para ver cuánto tiempo duran los accesos. Los resultados se generan en un formato de achivo .cvs para importar los resultados en hojas de cálculo. Este código se encuentra en una versión alternativa en: https://github.com/gaomy3832/mem_sys_probe/blob/master/src/aca_ch2_cs2.c  y los detalles de los autores y demás se pueden observar en la página del libro guía anteriormente mencionada.<syntaxhighlight lang="c">
 +
#include "stdafx.h"
 +
 
 +
#include <stdio.h>
 +
 
 +
#include <time.h>
 +
 
 +
#define ARRAY_MIN (1024) /* 1/4 smallest cache */
 +
 
 +
#define ARRAY_MAX (4096*4096) /* 1/4 largest cache */
 +
 
 +
int x[ARRAY_MAX]; /* array going to stride through */
 +
 
 +
double get_seconds() { /* routine to read time in seconds */ __time64_t ltime;
 +
 
 +
_time64( &ltime );
 +
 
 +
return (double) ltime;
 +
 
 +
}
 +
 
 +
int label(int i) {/* generate text labels */ if (i<1e3) printf("%1dB,",i);
 +
 
 +
else if (i<1e6) printf("%1dK,",i/1024);
 +
 
 +
else if (i<1e9) printf("%1dM,",i/1048576);
 +
 
 +
else printf("%1dG,",i/1073741824);
 +
 
 +
return 0;
 +
 
 +
}
 +
 
 +
int _tmain(int argc, _TCHAR* argv[]) {
 +
 
 +
int register nextstep, i, index, stride;
 +
 
 +
int csize;
 +
 
 +
double steps, tsteps;
 +
 
 +
double loadtime, lastsec, sec0, sec1, sec; /* timing variables */
 +
 
 +
/* Initialize output */
 +
 
 +
printf(" ,");
 +
 
 +
for (stride=1; stride <= ARRAY_MAX/2; stride=stride*2) label(stride*sizeof(int));
 +
 
 +
printf("\n");
 +
 
 +
/* Main loop for each configuration */
 +
 
 +
for (csize=ARRAY_MIN; csize <= ARRAY_MAX; csize=csize*2) { label(csize*sizeof(int)); /* print cache size this loop */
 +
 
 +
for (stride=1; stride <= csize/2; stride=stride*2) {
 +
 
 +
/* Lay out path of memory references in array */
 +
 
 +
for (index=0; index < csize; index=index+stride)
 +
 
 +
x[index] = index + stride; /* pointer to next */ x[index-stride] = 0; /* loop back to beginning */
 +
 
 +
/* Wait for timer to roll over */
 +
 
 +
lastsec = get_seconds();
 +
 
 +
sec0 = get_seconds(); while (sec0 == lastsec);
 +
 
 +
/* Walk through path in array for twenty seconds */
 +
 
 +
/* This gives 5% accuracy with second resolution */
 +
 
 +
steps = 0.0; /* number of steps taken */
 +
 
 +
nextstep = 0; /* start at beginning of path */
 +
 
 +
sec0 = get_seconds(); /* start timer */ { /* repeat until collect 20 seconds */ (i=stride;i!=0;i=i-1) { /* keep samples same */
 +
 
 +
nextstep = 0;
 +
 
 +
do nextstep = x[nextstep]; /* dependency */
 +
 
 +
while (nextstep != 0); }
 +
 
 +
steps = steps + 1.0; /* count loop iterations */
 +
 
 +
sec1 = get_seconds(); /* end timer */ } while ((sec1 - sec0) < 20.0); /* collect 20 seconds */
 +
 
 +
sec = sec1 - sec0;
 +
 
 +
/* Repeat empty loop to loop subtract overhead */
 +
 
 +
tsteps = 0.0; /* used to match no. while iterations */
 +
 
 +
sec0 = get_seconds(); /* start timer */ { /* repeat until same no. iterations as above */ (i=stride;i!=0;i=i-1) { /* keep samples same */
 +
 
 +
index = 0;
 +
 
 +
do index = index + stride;
 +
 
 +
while (index < csize);
 +
 
 +
}
 +
 
 +
tsteps = tsteps + 1.0;
 +
 
 +
sec1 = get_seconds(); /* - overhead */ } while (tsteps<steps); /* until = no. iterations */
 +
 
 +
sec = sec - (sec1 - sec0);
  
4.     Tecnología utilizada (Hacer énfasis en el soporte de procesamiento/memoria y que tipo de organización arquitectural computacional se propone)
+
loadtime = (sec*1e9)/(steps*csize);
  
5.     Costo (en dólares).
+
/* write out results in .csv format for Excel */
  
6.     Precio (en dólares) (Lo que ustedes cobraran, teniendo en cuenta, opciones en el mercado, servicio después de venta (de al menos tres años), sostenibilidad.
+
printf("%4.1f,", (loadtime<0.1) ? 0.1 : loadtime); }; /* end of inner for loop */
  
7.     Límites, detección y tolerancia a fallas, y problemas posibles de la solución propuesta.
+
printf("\n");
  
8.     Métricas propuestas para medir el rendimiento de acuerdo con los requerimientos.
+
}; /* end of outer for loop */
  
9.     Aspectos ambientales y éticos.
+
return 0;
  
10. Calidad técnica de la propuesta presentada.
+
}
 +
</syntaxhighlight>'''Programa en C para Evaluar el Sistema de Memoria'''
 +
[[File:FiguraUNO.png|center|thumb|700x700px]]
 +
'''Figura 2.30 : Ejemplo de Resultados para el programa en C para Evaluar el Sistema de Memoria'''
  
 +
a.        Observe y use el programa (cualquiera de los dos). Compílelo y ejecútelo, describa el programa (librerías usadas, rutinas clave, funciones y valores, cuáles son las salidas y que es lo que hace detalladamente. Ejecútelo sobre dos sistemas diferentes con configuración diferente (de procesador y memoria) y compare las salidas. Puede usar Microsoft Visual Studio pero preferiblemente use gcc en Linux.
  
'''<u>Las temáticas se publicarán en este sitio a partir del 22 de Febrero de 2024</u>'''
+
b.        Reproduzca la gráfica de ejemplo de la Figura 2.30 (página 135 del libro guía) para cada una de las configuraciones con sus resultados y explíquela.
  
<br />
+
Usando los resultados reproducidos, con su propia gráfica:
==='''Equipos de Trabajo (1-2024)'''===
+
 
Estos equipos estan dados tanto para las prácticas como para el desarrollo del proyecto final.
+
c.        ¿Cuáles son el tamaño total, el tamaño del bloque de caché de segundo nivel? ¿Qué significa esto?
 +
 
 +
d.        ¿Cuál es el tamaño de la memoria principal?
 +
 
 +
e.        ¿Como modificaría el código o si es necesario realizar otro para probar algunas otras características de una caché de instrucciones? ¿Por qué cree que es importante conocer estas características?
 +
 
 +
'''Proyecto 3. Equipo 3.''' (Basado en los Ejercicios del Capítulo 1. del libro Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface). Ejercicio 1.10  (Página 67).
 +
 
 +
Supongamos que se tiene un procesador Intel Xeon E3-1285 v6 de 4.10GHz cuyo consumo de energía por núcleo esta dado por la ecuación:
 +
Consumo de Poder Eléctrico= 146,3mA/GHz de voltaje<sup>2</sup>
 +
Y cuya operación de voltaje para todo el procesador esta descrito por la ecuación:
 +
Voltaje = (1/5) de Frecuencia +0.6
 +
Teniendo en cuenta que se parte de un TDP de 79 W y teniendo en cuenta que la frecuencia es de 4.1 GHz, el voltaje sería de 1.42 V.
  
'''Grupo A1'''
+
Igualmente, al correr un benchmarking, si observamos las instrucciones por núcleo usadas y el CPI promedio, se puede realizar la siguiente tabla.
 
{| class="wikitable"
 
{| class="wikitable"
|'''Equipo'''
+
|'''Núcleos por Procesador'''
|'''Integrantes'''
+
|'''Instrucciones por Núcleo'''
 +
|'''CPI'''
 
|-
 
|-
| rowspan="4" |1
+
|1
|BARAJAS ACELAS MARLON SNEYDER
+
|1.00E+10
 +
|1.0
 
|-
 
|-
|CARDENAS TIRADO REINALDO
+
|2
 +
|5.00E+09
 +
|1.2
 
|-
 
|-
|CASTELLANOS CAÑON ANDRES FELIPE
+
|4
 +
|2.50E+09
 +
|1.7
 +
|}
 +
'''Tabla de Instrucciones por Núcleo y CPI'''
 +
 
 +
 
 +
a.        Encuentre el consumo de poder medio de un programa que se ejecuta en 1, 2 y 4 núcleos asumiendo que cada núcleo opera a 3.7 GHz de Frecuencia.
 +
 
 +
b.        Teniendo en cuenta la tabla anterior (Tabla de Instrucciones por Núcleo y CPI) ¿cuál sería el tiempo de ejecución de un programa para 1, 2 y 4 núcleos?  Explique la tabla dada.
 +
 
 +
c.        Teniendo en cuenta las especificaciones que puede encontrar en el sitio del fabricante, para ese procesador, cual sería la configuración mínima ideal para usar ese procesador en un servidor (DRAM, Disco Duro, Interfaz de Red, Tamaño del chasis del servidor, fuente de poder). ¿Cuál sería su costo aproximado en dólares?
 +
 
 +
d.        Teniendo en cuenta la configuración y organización sugerida en el punto C. ¿hacia que aplicaciones dirigiría la solución? ¿Qué limitaciones arquitecturales tendría?
 +
 
 +
e.        ¿Por cual procesador de otro fabricante podría remplazarse, suponiendo que la configuración de su servidor sea compatible? Justifique su respuesta.
 +
 
 +
'''Proyecto 4. Equipo 4.'''  (Basado en los Ejercicios del Capítulo 2. del libro Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface). Ejercicio 2.20
 +
 
 +
El siguiente código (que se encuentra igual disponible en: [https://gist.github.com/kenreisan/2477303b79bc326af945b0623b54a8a2) <nowiki>https://gist.github.com/kenreisan/2477303b79bc326af945b0623b54a8a2</nowiki>)]  calcula la serie de Fibonnaci usando el método iterativo.<syntaxhighlight lang="c">
 +
/*
 +
 
 +
* Autor: Eduardo Romero
 +
 
 +
* Version: 1.0
 +
 
 +
*
 +
 
 +
* Programa para calcular los numeros de la serie de
 +
 
 +
* Fibonacci. Se usa el metodo iterativo.
 +
 
 +
*
 +
 
 +
* Por las limitantes del rango de numeros que puede
 +
 
 +
* contener un "unsigned long long" el numero de Fibonacci
 +
 
 +
* que puede mostrar el programa es fibo93.
 +
 
 +
*/
 +
 
 +
 
 +
#include <stdio.h>
 +
 
 +
#include <stdlib.h>
 +
 
 +
 
 +
unsigned long long fibonacci(int num){
 +
 
 +
   /*
 +
 
 +
    * Recibe:  Numero de la serie de Fibonacci.
 +
 
 +
    *
 +
 
 +
    * Regresa: El valor correspondiente alo numero
 +
 
 +
    *          de la serie de Fibonacci.
 +
 
 +
    *
 +
 
 +
    * Los casos bases son 0 y 1, despues solo es una suma
 +
 
 +
    * numero fibo-1 y fibo-2.
 +
 
 +
    */
 +
 
 +
   unsigned long long fibo1, fibo2, fibor;
 +
 
 +
 
 +
   if (num <= 0)
 +
 
 +
       return 0;
 +
 
 +
   if (num == 1)
 +
 
 +
       return 1;
 +
 
 +
 
 +
   fibo1 = 0;
 +
 
 +
   fibo2 = 1;
 +
 
 +
 
 +
   for (int i=2; i <= num; i++){
 +
 
 +
       fibor = fibo1 + fibo2;
 +
 
 +
       fibo1 = fibo2;
 +
 
 +
       fibo2 = fibor;
 +
 
 +
   }
 +
 
 +
 
 +
   return fibor;
 +
 
 +
}
 +
 
 +
 
 +
int main(int argc, char *argv[]){
 +
 
 +
   /*
 +
 
 +
    * Recibe:  El numero de la serie de Fibonacci desde la
 +
 
 +
    *          linea de comandos.
 +
 
 +
    *
 +
 
 +
    * Imprime en pantalla el numero deseado de la serie.
 +
 
 +
    */
 +
 
 +
   unsigned long long resultado;
 +
 
 +
 
 +
   resultado = fibonacci(atoi(argv[1]));
 +
 
 +
 
 +
   printf("fibo[%s] = %llu\n",argv[1],resultado);
 +
 
 +
 
 +
   return 0;
 +
 
 +
}
 +
</syntaxhighlight>
 +
 
 +
a.        Compilelo usando usando gcc y ejecútelo (recuerde que de acuerdo al código debe colocar el número máximo para encontrar la serie), en un computador personal de su preferencia diciendo la configuración principal arquitectural (Procesador y Memoria, compilador utilizado (gcc-4, icc, clang, etc), sistema operativo (distribución). Use las opciones -01w, -02 y -03 al compilar generando un ejecutable, por ejemplo de cada manera: suejecutable01.exe, suejecutableO2.exe y asi sucesivamente ¿Que observa en el comportamiento del código tanto al compilarlo como al ejecutar? ¿Que pasa si usa las opciones -O, -O0, -Ofast -Og y Oz?
 +
 
 +
b.        Tomando el código .c paselo al ensamblador de base usando:
 +
 
 +
<code>gcc -S -masm=intel FiboFuente.c -o miarchivo.</code>asm
 +
 
 +
y describa que observa en el archivo .asm
 +
 
 +
c.        Para cada uno de los ejecutables anteriores, y describa que observa, identificando la cantidad de instrucciones.
 +
objdump --disassemble=main -Mintel64 sucodigoejecutable o
 +
 
 +
objdumb -D sucodigoejecutable
 +
d.        Observando el .asm del punto b y la salida del objdumb del punto .c, y sabiendo que una optimización es el proceso de transformación de un fragmento de código en otro trozo de código funcionalmente equivalente para mejorar una o varias de sus características. Las dos características más importantes son la velocidad y el tamaño del código, ¿Observa variación en ellas (mejora, desmejora)? Recomendación: use las opciones de sistema operativo para saber cuánto se demora en ejecutar un programa.
 +
 
 +
Opción: Puede usar otro código de Fibonacci en c o c++ pero debe realizar los anteriores puntos.
 +
 
 +
'''Proyecto 5.  Equipo 5.''' (Basado en los Ejercicios del Capítulo 3. del libro Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface). Ejercicio 3.12
 +
 
 +
Como se vió en el curso, la multiplicación en coma flotante es incluso más complicada y desafiante que la suma en coma flotante, y ambas palidecen en comparación con la división en coma flotante, siendo un reto incluso para operaciones con tecnología nueva y para uso nuevo, como pasa con la inteligencia artificial. En ese orden de ideas,   NVIDIA propuso en el mes pasado la cuarta generación de sus chips Grace Hooper y Backwell, para arquitecturas computacionales que soporten inteligencia artificial (https://www.nvidia.com/en-us/data-center/tensor-cores/) Teiendo en cuenta esas especificaciones dadas, hay dos precisiones posibles y estandarizadas que pueden observarse en la siguiente tabla:<br />
 +
{| class="wikitable"
 +
|'''Tecnología:'''
 +
|'''Blackwell'''
 +
|'''Hopper'''
 
|-
 
|-
|FONSECA MIRANDA DIEGO FERNANDO
+
|'''Supported Tensor Core precisions'''
 +
|FP64, TF32, BF16, FP16, FP8, INT8, FP6, FP4
 +
|FP64, TF32, BF16, FP16, FP8, INT8
 
|-
 
|-
| rowspan="5" |2
+
|'''Supported CUDA<sup>®</sup> Core precisions'''
|GARCIA BARAJAS DIEGO ALEJANDRO
+
|FP64, FP32, FP16, BF16
 +
|FP64, FP32, FP16, BF16, INT8
 +
|}
 +
'''Tabla de Especificaciones preliminaries'''
 +
 
 +
a.        Observando la table anterior, ¿Porque es relevante esta información y cuál es la diferencia entre estos dos tipos de tecnología? Haga una descripción de los aspectos más relevantes en términos de operaciones aritméticas para sistemas computacionales.
 +
 
 +
b.        Calcule el producto de A y B manualmente, suponiendo que A y B están almacenados en el formato NVIDIA modificado de 16 bits para Tensor Cores, redondeando el resultado y mostrando como ejemplo, como serian esos pasos, como se presenta en la tabla siguiente:<br />
 +
{| class="wikitable"
 +
|
 +
|A
 +
|B
 
|-
 
|-
|GARCIA VALBUENA MANUELA ALEJANDRA
+
|a.
 +
|–8.0546875 × 10<sup>0</sup>
 +
|–1.79931640625 × 10–<sup>1</sup>
 
|-
 
|-
|GOMEZ VILLARREAL SANTIAGO
+
|b.
 +
|8.59375 × 10<sup>–2</sup>
 +
|8.125 × 10<sup>–1</sup>
 +
|}
 +
 
 +
c.        Teniendo en cuenta el cálculo a mano indique si hay desbordamiento (sea Overflow o Underflow). Analice que pasaría con un patrón de 24 bits y también como un número decimal. ¿Qué tan preciso es su resultado? ¿Cómo se compara con el número que si haces la multiplicación usando 32Bits?
 +
 
 +
d.         Esta tecnología es compatible con IEEE 754. ¿A que se refiere cuando se dice que se asume 1 guard, 1 round bit y 1? Sticky bit?
 +
 
 +
e.        En términos arquitecturales (computacionales), ¿Cuál es la diferencia entre entrenamiento e inferencia? ¿Por qué es importante el punto flotante y la manera de manejarlo en las operaciones aritméticas entonces de acuerdo a estas dos tareas?
 +
 
 +
'''Proyecto 6.  Equipo 6.''' (Basado en los Ejercicios del Capítulo 4. del libro Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface). Ejercicio 4.1
 +
 
 +
La siguiente figura, es la implementación básica del subconjunto MIPS, incluidos los multiplexores y líneas de control necesarios. El multiplexor superior (“Mux”) controla qué valor reemplaza a la PC (PC + 4 o la dirección de destino de la sucursal); El multiplexor está controlado por la puerta que conecta en “Y” la salida cero de la ALU y una señal de control que indica que la instrucción es una rama. El multiplexor intermedio, cuya salida regresa al archivo de registro, se utiliza para dirigir la salida de la ALU (en el caso de una instrucción aritmético-lógica) o la salida de la memoria de datos (en el caso de una carga) para escribir en el archivo de registro. Finalmente, el multiplexor inferior se usa para determinar si la segunda entrada de ALU proviene de los registros (para una instrucción aritmético-lógica O una rama) o del campo de compensación de la instrucción (para una carga o almacenamiento). Las líneas de control agregadas son sencillas y determinan la operación realizada en la ALU, si la memoria de datos debe leer o escribir y si los registros deben realizar una operación de escritura. Las líneas de control se muestran en color para que sean más fáciles de ver.
 +
[[File:FiguraDOS.png|center|thumb|600x600px]]
 +
'''FIGURA 4.2 La implementación básica del subconjunto MIPS.'''
 +
 
 +
Igualmente, teniendo en cuenta que diferentes instrucciones utilizan diferentes bloques de hardware en la implementación básica de un solo ciclo y observando la siguiente instrucción:
 +
 
 +
{| class="wikitable"
 +
|
 +
|'''Instrucción'''
 +
|'''Interpretación'''
 
|-
 
|-
|HERNANDEZ DELGADO CRISTIAN MANUEL
+
|'''a.'''
 +
|AND Rd,Rs,Rt Reg[Rd]
 +
|ND Rd,Rs,Rt Reg[Rd]
 
|-
 
|-
|HOLGUIN FERRO JEFFERSON
+
|'''b.'''
|-
+
|SW Rt,Offs(Rs) Mem[Reg[Rs]
| rowspan="4" |3
+
|SW Rt,Offs(Rs) Mem[Reg[Rs]
|JAIMES OJEDA ANDRES FELIPE
+
|}
|-
+
 
|MELCHOR SUAREZ VALERY ANDREA
+
a.        Explique que hace la instrucción dada.
|-
+
 
|MENDOZA CASTELLANOS NELSON DAVID
+
b.        Observando la figura, explique detalladamente las señales de control generadas para la instrucción descrita y responda ¿cuáles son ellas?.
|-
+
 
|MONTAÑEZ ARAQUE YONATAN FERNANDO
+
c.        Identifique los bloques o recursos útiles para la instrucción dada. Explique la instrucción precisamente en la figura.
|-
+
 
| rowspan="4" |4
+
d.        Claramente hay recursos que producen salidas y otros que no. ¿Identifíquelos y diga por qué?
|ORTIZ CRUZATE MATEO GERONIMO
+
 
|-
+
e.        En qué caso real de aplicación implementaría el conjunto MIPS mostrado en la figura.
|ORTIZ PABON JUAN MANUEL
+
 
|-
+
'''Proyecto 7.  Equipo 7.''' (Basado en los Ejercicios del Capítulo 5. del libro Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface). Ejercicio 5.17
|ORTIZ SALINAS NATALY CRISTINA
+
 
|-
+
Teniendo en cuenta los procesadores AMD Ryzen 7 PRO 7730U como AMD Ryzen 7 7735HS son multiprocesadores de chips (CMP), que tienen múltiples núcleos y sus cachés son L1: 512KB, L2: 4.0MB, L3: 16MB y pueden llegar hasta 144 MB de memoria en chip, usados para equipos de escrito, se va a hacer énfasis en la memoría caché principalmente. El diseño de esas caché en chip CMP tiene ventajas y desventajas interesantes. Las siguiente tablas muestran las tasas de errores y las latencias de aciertos para dos pruebas comparativas con diseños de caché L2 privada y compartida. Supongamos que la caché L1 falla una vez cada 32 instrucciones, obviando la L3 para este benchmarking.
|QUINTERO BUITRAGO KEVIN STEVEN
+
 
|-
+
{| class="wikitable"
| rowspan="5" |5
+
|
|ROA PORRAS JUAN DIEGO
+
|Privada
|-
+
|Compartida
|SAAVEDRA GONZALEZ JUAN DAVID
 
|-
 
|SANMIGUEL URIBE CAMILO ANDRES
 
 
|-
 
|-
|SANTAMARIA GONZALEZ ALEJANDRO
+
|Benchmark AMD Ryzen 7 PRO 7730U  misses-per-instruction
 +
|0,25
 +
|0,10
 
|-
 
|-
|SEPULVEDA DURAN DIEGO FABIAN
+
|Benchmark AMD Ryzen 7 7735HS misses-per instruction
 +
|0,06
 +
|0,03
 
|}
 
|}
'''Grupo A2'''
+
'''Tabla de resultados de Benchmarking'''
'''''<nowiki/>'''''<nowiki/>''<nowiki/>''<nowiki/>''<nowiki/>''
 
 
{| class="wikitable"
 
{| class="wikitable"
|'''Equipo'''
+
|
|'''Integrantes'''
+
|Private Caché
 +
|Shared Caché
 +
|Memory
 
|-
 
|-
| rowspan="4" |6
+
|a.
|ALMANZAR QUINTERO JHON JAIRO
+
|10
 +
|30
 +
|260
 
|-
 
|-
|ARDILA OSSES JUAN DANIEL
+
|b.
|-
+
|20
|AVILA QUITIAN JUAN PABLO
+
|60
|-
+
|240
|CASTRO MENDOZA KEVIN DANIEL
 
|-
 
| rowspan="5" |7
 
|FIGUEROA ARENAS JOSE DANIEL
 
|-
 
|GAONA MATEUS LUNA VALENTINA
 
|-
 
|GUZMAN DURAN KEVIN DANNIE
 
|-
 
|JAIMES CASTRO BRANDON DAVID
 
|-
 
|JARAMILLO BENAVIDES JULIAN ANDRES
 
|-
 
| rowspan="5" |8
 
|MONGUI PIÑEROS OSCAR MAURICIO
 
|-
 
|MONSALVE AYALA MILTON ANDRES
 
|-
 
|ORDUZ CARVAJAL CRISTIAN VLADIMIR
 
|-
 
|ORDUZ PICON CHRISTIAN ISNARDO
 
|-
 
|PARRA ARIZA ANDREA JULIANA
 
|-
 
| rowspan="4" |9
 
|RUEDA BARRAGAN MICHAEL RONALDO
 
|-
 
|SIERRA GARCIA HARVER ALEJANDRO
 
|-
 
|VILLABONA ROA ANYI LORENA
 
|-
 
|VILLANUEVA BERNAL JAVIER DAVID
 
 
|}
 
|}
<br />
+
'''Tabla de de Latencias de Acierto'''
=='''PRACTICAS 1-2024'''==
+
 
 +
a.        Realice una comparación técnica entre los dos procesadores, exponiendo las principales diferencias arquitecturales (y lo que implica, como ventajas y desventajas) así como las similitudes. Recuerde haga énfasis en la memoria y caché.
 +
 
 +
b.        La latencia de la caché compartida aumenta con el tamaño del CMP. Que hay que tener en cuenta para elegir un mejor diseño si la latencia de la caché compartida se duplica, teniendo en cuenta que el ancho de banda fuera del chip se convierte en un cuello de botella a medida que aumenta la cantidad de núcleos CMP. Elija el mejor diseño si la latencia de la memoria fuera del chip se duplica.
 +
 
 +
c.        Siguiendo la ley de Moore, supongamos que las nuevas generaciones de procesadores duplican el número de núcleos cada 18 meses. Para mantener el mismo nivel de rendimiento por núcleo, ¿cuánto más ancho de banda de memoria fuera del chip se necesita para un procesador de 64 Núcleos?
 +
 
 +
d.        Teniendo en cuenta ahora si, todos los niveles de caché y la jerarquía de memoria: ¿Que clases de optimizaciones pueden mejorar la cantidad de errores simultáneos?
 +
 
 +
e.        En los dos procesadores dados, ¿para que serviría la Caché L3? ¿Afectaría los resultados de las tablas anteriores? Justifique su respuesta, por ejemplo, explicando como y por qué en caso de afectar y si no, por qué no.
 +
 
 +
'''Proyecto 8 . Equipo 8.''' (Basado en los Ejercicios del Capítulo 6. del libro Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface). Ejercicio 6.20
 +
 
 +
La evaluación y el mantenimiento diarios de sistemas computacionales operativos involucran muchos de los conceptos discutidos en todo el curso. Teniendo en cuenta  las complejidades de la evaluación de sistemas, se plantea un análisis para un uso especifico, en este caso para inteligencia artificial.
 +
 
 +
a.        Configure una solución con una NVIDIA GH200 Grace-Hopper para proporcionar 50 terabytes de almacenamiento que ejecutan diversas aplicaciones de inteligencia artificial. Su configuración debe minimizar el consumo de energía y al mismo tiempo abordar los problemas de rendimiento y disponibilidad de la matriz de discos. Asegúrese de considerar las propiedades de ejecuciones grandes al realizar su configuración (No olvide identificar tanto la cantidad de total y como tipo de procesadores involucrados en la NVIDIA GH200)
 +
 
 +
b.        Recomendar un sistema de copia de seguridad y archivado de datos para la matriz de discos para la solución propuesta, describiendo en detalle su recomendación, incluyendo el sistema de archivos a usar, sugiriendo la capacidad mínima y la capacidad idónea.
 +
 
 +
c.        Evalúe el costo y la idoneidad para la aplicación principal de este sistema. Seleccione los parámetros para comparar utilizando las propiedades de la aplicación, así como los requisitos especificados.
 +
 
 +
d.        De acuerdo con su recomendación, seleccione dos posibles integradores/fabricantes (HPE, Lenovo, SuperMicro, DELL) y compárelos.
 +
 
 +
e.        El sistema puede ser enfriado tanto por aire como por agua, teniendo en cuenta lo disponible en el mercado, realice una comparación técnica y en costos de la solución propuesta.
 +
 
 +
'''Proyecto 9 .  Equipo 9.''' (Basado en los Ejercicios del Capítulo 7. del libro Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface). Ejercicio 7. 20
 +
 
 +
El Benchmarking es una evaluación comparativa y es considerado un campo de estudio que implica identificar cargas de trabajo representativas para ejecutar en plataformas informáticas específicas con el fin de poder comparar objetivamente el rendimiento de un sistema con otro. En este ejercicio compararemos dos clases de puntos de referencia, usando LINPACK. Este benchmarking se utiliza para resolver un sistema denso de ecuaciones lineales, que sirve como punto de referencia que permite al usuario escalar el tamaño del problema y optimizar el software para lograr el mejor rendimiento para una máquina determinada. El resultado se da en número de FLOP por segundo.
 +
 
 +
a.        Usando una versión de LINPACK para PC (hay decenas en internet que igualmente puede buscarse como [https://www.netlib.org/benchmark/hpl/ HPL]), seleccione una y explique su funcionamiento. Ejecútela en dos sistemas multinúcleo con configuraciones tanto de memoria como de procesador diferentes. Compare los resultados mostrando cual seria el equipo con mas capacidades y mas velocidad de acuerdo a ese benchmark.
 +
 
 +
b.        Observe los últimos resultados del Top500 [[(https://www.top500.org/)|(<nowiki>https://www.top500.org/</nowiki>)]] que usa el mismo LINPACK pero para grandes plataformas. Tomando los tres primeros sistemas en la lista, explique los resultados y haga las comparaciones pertinentes en esos tres sistemas.
 +
 
 +
c.        En la misma página se presenta tanto el HPCG como el Green500. Explique estos dos benchmarking en detalle.
 +
 
 +
d.        Observe los últimos resultados tanto para el HPCG como el Green500 y compárelos con los del Top500. ¿Qué discusión se plantearía sobre los resultados, por ejemplo, la diferencia entre ellos?
 +
 
 +
e.        Calcule o determine (a través de un análisis intuitivo) como serían los resultados que obtendría en HPCG como en Green500 en los dos sistemas usados para el punto a.
 +
===='''Equipos de Trabajo (2-2024)'''====
 +
Estos equipos estan dados tanto para las prácticas como para el desarrollo del proyecto final.
 +
 
 +
'''Grupo A1'''
 +
[[File:G2024-A1.png|center|thumb|600x600px]]
 +
 
 +
 
 +
'''Grupo A2'''
 +
[[File:G2024-A2.png|center|thumb|600x600px]]
 +
 
 +
'''Grupo E2'''
 +
[[File:G2024-E2.png|center|thumb|693x693px]]
 +
'''''<nowiki/>'''''<nowiki/>''<nowiki/>''<nowiki/>''<nowiki/>''<br />
 +
=='''PRACTICAS 2-2024'''==
  
 
*'''Condiciones Generales'''  
 
*'''Condiciones Generales'''  
 
**Cada grupo de asignado para el trabajo final es el mismo para la entrega de las prácticas, compuesta por un número determinado de estudiantes matriculados en el curso. Las asignaciones de los grupos están dados en el item del proyecto final para este semestre.
 
**Cada grupo de asignado para el trabajo final es el mismo para la entrega de las prácticas, compuesta por un número determinado de estudiantes matriculados en el curso. Las asignaciones de los grupos están dados en el item del proyecto final para este semestre.
 
**'''<u>Cada grupo debe crear un espacio GitHub/GitLab compartido, abierto y de acceso libre</u>''', como proyecto y en el que los integrantes esten enlazados. En este espacio se subirán los archivos .md .hdl y un readme en el que expliquen que hicieron en cada taller de Nand2Tetris.
 
**'''<u>Cada grupo debe crear un espacio GitHub/GitLab compartido, abierto y de acceso libre</u>''', como proyecto y en el que los integrantes esten enlazados. En este espacio se subirán los archivos .md .hdl y un readme en el que expliquen que hicieron en cada taller de Nand2Tetris.
**Las entregas de las prácticas deben publicarse estrictamente en la <u>fecha máxima indicada</u> para cada una de ellas, la cual se encuentra subrayada. Desde el momento del curso hasta las '''18:00 (6:00 p.m.).''' Después de la fecha y hora de entrega dada, la calificación se penalizará disminuyendo el valor de la misma.
+
**Las entregas de las prácticas deben publicarse estrictamente en la <u>fecha máxima indicada</u> para cada una de ellas, <u>la cual se encuentra subrayada</u>. Desde el momento del curso hasta las '''23:00 (11:00 p.m.).''' Después de la fecha y hora de entrega dada, la calificación se penalizará disminuyendo el valor de la misma.
 
**Las prácticas tienen fecha sugerida de realización, sin embargo, pueden entregarse antes. Recuerde L<u>a fecha de entrega esta subrayada en el encabezado de cada práctica.</u>
 
**Las prácticas tienen fecha sugerida de realización, sin embargo, pueden entregarse antes. Recuerde L<u>a fecha de entrega esta subrayada en el encabezado de cada práctica.</u>
 
**Cada entrega de práctica deberá indexarse e identificarse correctamente, por ejemplo un título podría ser: <u>Práctica 1: Familiarizándose con las sesiones prácticas e introducción al curso.</u>
 
**Cada entrega de práctica deberá indexarse e identificarse correctamente, por ejemplo un título podría ser: <u>Práctica 1: Familiarizándose con las sesiones prácticas e introducción al curso.</u>
*'''Un único miembro del grupo''' debe enviar el correo respectivo informando sobre la publicación de la entrega en el sitio tanto al profesor como al soporte del curso. Por ejemplo colocando en el asunto del correo: Entrega Práctica 1 - Equipo 1 del Curso de Arquitectura de Computadores 2-2021. Se recomienda en el cuerpo del correo colocar los nombres de los integrantes del grupo con su respectivo código de estudiante, que participaron en esa práctica.
+
*'''Un único miembro del grupo''' debe enviar el correo respectivo informando sobre la publicación de la entrega en el sitio tanto al profesor como al soporte del curso. Por ejemplo colocando en el asunto del correo: Entrega Práctica 1 - Equipo 1 del Curso de Arquitectura de Computadores 2-2024. Se recomienda en el cuerpo del correo colocar los nombres de los integrantes del grupo con su respectivo código de estudiante, que participaron en esa práctica.
 
*Recuerden que en el readme, '''deben colocar por escrito una descripción o introducción a la práctica misma''', agregando la explicación de los  códigos y la bibliografía utilizada.
 
*Recuerden que en el readme, '''deben colocar por escrito una descripción o introducción a la práctica misma''', agregando la explicación de los  códigos y la bibliografía utilizada.
 
*Es posible que para una práctica específica existan preguntas adicionales,  condiciones particulares o bonus propuestos.
 
*Es posible que para una práctica específica existan preguntas adicionales,  condiciones particulares o bonus propuestos.
Line 417: Line 809:
  
 
<nowiki/>'''''<nowiki/>'''''<nowiki/>'''''<nowiki/>'''''<nowiki/>'''''<nowiki/>'''''
 
<nowiki/>'''''<nowiki/>'''''<nowiki/>'''''<nowiki/>'''''<nowiki/>'''''<nowiki/>'''''
===='''Primera Práctica (Fecha Máxima de entrega: 8 y <u>15  de Febrero de 2024)</u>'''====
+
===='''Primera Práctica (Realización 15 y <u>22 de Agosto de 2024)</u>'''====
 
Esta práctica se realiza ya por los grupos de trabajo designados y  en dos partes.  
 
Esta práctica se realiza ya por los grupos de trabajo designados y  en dos partes.  
  
Line 451: Line 843:
 
'''Recomendación importante:''' Si bien los grupos pueden COLABORAR entre ellos (NO COPIARSE O PLAGIARSE) para la realización de los proyectos, recuerden que deben ser diferentes. La colaboración les permitirá facilitar el uso de la plataforma, confrontar resultados y realizar discusiones entre los diferentes grupos.
 
'''Recomendación importante:''' Si bien los grupos pueden COLABORAR entre ellos (NO COPIARSE O PLAGIARSE) para la realización de los proyectos, recuerden que deben ser diferentes. La colaboración les permitirá facilitar el uso de la plataforma, confrontar resultados y realizar discusiones entre los diferentes grupos.
  
===='''Segunda Práctica: ( 22 y <u>29 de Febrero de 2024</u>):'''====
+
===='''Segunda Práctica: (5 y <u>12 de Septiembre</u>):'''====
 
A partir de esta práctica, la dificultad comienza a aumentar un poco. Se debe realizar el proyecto 2 denominado Lógica Aritmética y, que puede encontrar en: https://www.nand2tetris.org/project02 y el proyecto 3, denominado Lógica secuencial, donde se trataran aspectos importantes relacionados con la memoria y se puede encontrar en: https://www.nand2tetris.org/project03
 
A partir de esta práctica, la dificultad comienza a aumentar un poco. Se debe realizar el proyecto 2 denominado Lógica Aritmética y, que puede encontrar en: https://www.nand2tetris.org/project02 y el proyecto 3, denominado Lógica secuencial, donde se trataran aspectos importantes relacionados con la memoria y se puede encontrar en: https://www.nand2tetris.org/project03
  
Line 461: Line 853:
 
'''Bonus:''' ¿Qué tipo de unidades aritmético lógicas existen?  
 
'''Bonus:''' ¿Qué tipo de unidades aritmético lógicas existen?  
  
===='''Tercera Práctica (7 y <u>14 de Marzo de 2024</u>):'''====
+
===='''Tercera Práctica (19 y <u>26 de Septiembre</u>):'''====
 
Este laboratorio trata el proyecto 4, relacionado con lenguaje de máquina puede encontrarse en: https://www.nand2tetris.org/project04 y busca atacar posteriormente el proyecto 5: arquitectura computacional, que puede consultarse en: https://www.nand2tetris.org/project05
 
Este laboratorio trata el proyecto 4, relacionado con lenguaje de máquina puede encontrarse en: https://www.nand2tetris.org/project04 y busca atacar posteriormente el proyecto 5: arquitectura computacional, que puede consultarse en: https://www.nand2tetris.org/project05
  
Line 471: Line 863:
 
'''Bonus:''' Como informático o computista: ¿La arquitectura computacional o la arquitectura del sistema no tiene en cuenta igualmente la arquitectura de software? Justifique su respuesta.
 
'''Bonus:''' Como informático o computista: ¿La arquitectura computacional o la arquitectura del sistema no tiene en cuenta igualmente la arquitectura de software? Justifique su respuesta.
  
===='''Cuarta Práctica ( 20 y 21 de Marzo pero la entrega puede realizarse el  <u>22 de Marzo  de 2024</u>)'''====
+
===='''Cuarta Práctica (3 de Octubre)'''====
 
Este proyecto 6, relacionado con ensamblador encontrarse en: https://www.nand2tetris.org/project06  
 
Este proyecto 6, relacionado con ensamblador encontrarse en: https://www.nand2tetris.org/project06  
  
Line 478: Line 870:
 
'''Bonus:''' ¿Por qué es tan importante el ensamblador?  
 
'''Bonus:''' ¿Por qué es tan importante el ensamblador?  
  
===='''Quinta Práctica ( 4 y 11 <u>de Abril de 2024)</u>'''====
+
===='''Quinta Práctica (10 y <u>17 de Octubre)</u>'''====
 
Este laboratorio trata el proyecto 7, relacionado con máquina virtuales y el stack aritmético puede encontrarse en: https://www.nand2tetris.org/project07 y busca atacar el proyecto 8: el control computacional, que puede consultarse en: https://www.nand2tetris.org/project08
 
Este laboratorio trata el proyecto 7, relacionado con máquina virtuales y el stack aritmético puede encontrarse en: https://www.nand2tetris.org/project07 y busca atacar el proyecto 8: el control computacional, que puede consultarse en: https://www.nand2tetris.org/project08
  
Line 488: Line 880:
 
'''Bonus:''' ¿Cual es la ventaja del contenedor respecto a la máquina virtual?
 
'''Bonus:''' ¿Cual es la ventaja del contenedor respecto a la máquina virtual?
  
===='''Sexta Práctica ( 18  y  <u>25 Abril de 2024</u>)'''====
+
===='''Sexta Práctica (<u>24 de Octubre</u>)'''====
 
Este laboratorio trata el proyecto 9, relacionado con lenguaje de alto nivel puede encontrarse en: https://www.nand2tetris.org/project09
 
Este laboratorio trata el proyecto 9, relacionado con lenguaje de alto nivel puede encontrarse en: https://www.nand2tetris.org/project09
  
Line 496: Line 888:
 
'''Bonus:''' ¿Qué se debe considerar para proponer un nuevo y buen lenguaje de programación, teniendo en cuenta la arquitectura de computador completa? Justifique su respuesta.  
 
'''Bonus:''' ¿Qué se debe considerar para proponer un nuevo y buen lenguaje de programación, teniendo en cuenta la arquitectura de computador completa? Justifique su respuesta.  
  
===='''Séptima Práctica - INDIVIDUAL ( <u>2 de Mayo de 2024</u>)'''====
+
===='''Séptima Práctica (<u>31 de octubre</u>)'''====
 +
Este laboratorio trata el proyectos 10 y 11 , relacionados con la compilación: https://www.nand2tetris.org/project10 y  https://www.nand2tetris.org/project11
 +
 
 +
#Desarrolle más el concepto de compilación y explique por es tan importante.
 +
#De una lista de compiladores que existen y para que lenguajes, organizándolos de mayor uso a menor (tenga en cuenta sin son open source o no y en este ultimo caso, no olvide mencionar el precio del mercado).
 +
 
 +
'''Bonus:''' ¿Como se construye un compilador? Justifique su respuesta.
 +
 
 +
===='''Octava Práctica (7 <u>de Noviembre</u>)'''====
 +
Este laboratorio trata el proyectos 12 , relacionado el sistema operativo: https://www.nand2tetris.org/project12
 +
 
 +
#Desarrolle más el concepto de compilación y explique por es tan importante.
 +
#¿Que elementos de la arquitectura computacional debe considerarse para proponer la implementación de un sistema operativo?
 +
 
 +
'''Bonus:''' ¿En que lenguaje (o lenguajes) de programación se escriben los sistemas operativos? De ejemplos de su respuesta.
 +
 
 +
===='''Novena Práctica - INDIVIDUAL ( <u>14 de Noviembre</u>)'''====
  
  

Latest revision as of 09:04, 26 August 2024

Volver a Cursos


Arquitectura de Computadores - Código 22966

Carlos Jaime Barrios Hernández - ( c b a r r i o s  @   u i s . e d u . c o )

Luis Alejandro Torres Niño -

Auxiliatura Técnica-Académica : Equipo de Ingenieria de Supercomputación y Cálculo Científico

Theory-vs-practice.jpg

Contents

PRESENTACION

El diseño, desarrollo e innovación son palabras que corresponden a la actividad de un ingeniero, cualquiera que sea su área de trabajo. Desde un punto de vista ingenieril la tecnología, es el fruto de la concepción y desarrollo del conocimiento, utilizando herramientas y proyectando una utilidad, incluyendo el diseño de nuevas herramientas. Como ingenieros de sistemas esas herramientas son las máquinas computacionales, las cuales evolucionan con la actualización del conocimiento, que involucra la explotación de nuevos materiales, nuestra capacidad de abstracción y las perspectivas de desarrollo (mas que las necesidades).


Si bien el componente técnico/tecnológico de la asignatura arquitecturas de computadores es importante, el solo hecho de utilizar la palabra “arquitectura” involucra una percepción hacia la concepción, el diseño y la organización de los elementos que integran un sistema de cómputo (no solo una máquina computadora), como es la interacción con otros sistemas y con los humanos, observando tendencias, factibilidad, requerimientos de rendimiento, limitaciones tecnológicas y físicas, impacto ambiental entre otros. Aunque la frontera con el conocimiento que involucra otras áreas como la ingeniería electrónica, la física de materiales o la matemática aplicada es frágil, el curso esta dirigido a estudiantes de ingeniería de sistemas y ciencias de la computación, buscando ofrecer fundamentos de arquitectura de sistemas computacionales desde una ubicación histórica. De ahí que se complementen con lecturas acerca del estado del arte en cada una de las secciones propuestas para este curso.


El propósito fundamental de esta asignatura durante el presente semestre es establecer un estado de conocimientos fundamentales en arquitectura de computadores, que permita manejar el lenguaje técnico asociado, ubicar temporalmente el desarrollo tecnológico, conociendo el estado del arte en esta área y fundamentar conocimientos que permitan el auto-aprendizaje y profundización en el área, además de la interacción en equipos interdisciplinarios que requieran competencias en arquitectura de sistemas computacionales.

Contenido

  1. Introducción y Fundamentos de Arquitectura de Sistemas de Cómputo
    1. Arquitectura, Organización y Diseño de Sistemas de Cómputo
    2. Desarrollo histórico – Ubicación histórica actual
    3. Clases de Computadoras
    4. Abstracción y Tecnología de Computación – Tendencias
    5. Desempeño
    6. Casos de Estudio
  2. Instrucciones y Aritmética para Computador
    1. Fundamentos de Instrucciones para Computador
      1. Operaciones y Operandos de Hardware de Computadoras
      2. Representación de Instrucciones
      3. Operaciones Lógicas
      4. Instrucciones para la toma de decisiones
      5. Soporte de Procedimientos a nivel de Hardware
      6. Comunicaciones
      7. Arquitectura MIPS
      8. Introducción Paralelismo I – Paralelismo de Instrucciones y el problema de la sincronización
      9. Algunos Aspectos Avanzados
        1. Aspectos Arquitecturales de Compilación
        2. Fundamentos de Diseño Lógico
        3. Mapeo de Hardware
      10. Casos de Estudio
    2. Introducción y Fundamentos de Aritmética para Computador
      1. Adición y substracción
      2. Multiplicación y División
      3. Introducción al Paralelismo II – Aritmética de computadores y el problema de la asociatividad.
      4. Casos de Estudio
  3. Organización y Diseño Arquitectural de Sistemas de Cómputo
    1. Fundamentos de Organización y Diseño
    2. Aspectos Básicos de Procesadores
      1. Aspectos Lógicos de Diseño
      2. Pipeline y Control
      3. Paralelismo y Escalabilidad
      4. Casos de Estudio
    3. Fundamentos de Memoria
      1. Fundamentos de Organización y Diseño
      2. Jerarquía de Memoria
      3. Casos de Estudio
    4. Aspectos Básicos de Almacenamiento
    5. Aspectos Básicos de Comunicaciones y Conectividad
      1. Conectividad Interna
      2. Interconectividad y Redes (Introducción)
    6. Fundamentos de I/O, Gráficas e Interfaces
    7. Casos de Estudio
  4. Tendencias y Direcciones Futuras
    1. Arquitecturas Híbridas
    2. Arquitecturas Reconfigurables
    3. Aspectos Energéticos, Ecológicos y Ambientales
    4. Arquitecturas Escalables, de Gran Escala y Ecosistemas
    5. ARMS (Advanced RISC Architectures) y Computadores Embebidos.
    6. EXASCALE y otras direcciones

ASPECTOS METODOLOGICOS

  • Seminarios Teóricos
  • Seminarios Magistrales
  • Seminarios con Invitados
  • Sesiones Teórico Prácticas / Análisis de Casos
  • Lecturas Sugeridas (En español y en Inglés)
  • Webminars y Videoconferencias

DIAPOSITIVAS Y MATERIAL DEL CURSO

El material presentado, fundamentalmente son las diapositivas presentadas durante las sesiones tanto teóricas como los talleres. Es importante resaltar que la mayoría del material se encuentra en inglés. Esto con el fin de acostumbrar la consulta en inglés, debido a que las especificaciones y la bibliografía y fuentes de información "de punta" en tecnología están estandarizadas en inglés. Es posible que existan algunos errores de escritura.  Estas diapositivas son principalmente de las sesiones Teóricas (Desde el I Semestre de 2016, pero actualizadas cada semestre). Los artículos presentados por los estudiantes a partir del primer semestre de 2016, se encuentran en la parte denominada: HISTORICO DE PROYECTOS PASADOS.

Presentación del Curso:

Del Tema 1 del Contenido:

Del Tema 2 del Contenido:

Del Tema 3 del Contenido:

EVALUACIONES ( Todos los Grupos )

Es importante que el curso, es un curso presencial, el cual se evaluará de la siguiente manera:

  1. Taller Individual (15%)
  2. Entrega de Prácticas (30%)
  3. Proyecto de Clase (En Grupos) (40%)
    • Taller de Informe de Avance (Bonus +2)
    • White Paper (20%) (Por definir)
    • Poster Digital (20%) (Por definir)
  4. Evaluación Individual Final (15%)
  5. BONUS (+0,3 máximo para cada entrega) (Quices, Rendimiento en el grupo de trabajo, asistencia a clase)

(15%) Taller Individual 1 - Primera Nota -

(Realización : Semana del 26 al 30 de agosto)

Fecha y Hora Limite de Entrega: 30 de agosto de 2024 a las 9:30 (GMT - 5 Bogota/Lima Time)

Este taller individual, se realizará de manera escrita-remota, siguiendo las características de una evaluación tradicional y deberá entregarse el viernes 30 de agosto de 2024, via correo electrónico al correo electrónico del profesor, como un documento adjunto en *.pdf nombrado con la inicial de su primer nombre y código, por ejemplo, si su código es 941108 y su nombre es Cecilia, sería C_941108.pdf el archivo en el que están las respuestas. El asunto del correo, deberá ser: Entrega Taller Individual 1 - (su código de estudiante) y en el texto del correo por favor colocar, su nombre completo, código de estudiante y curso al que pertenece (si es A1, A2 o E2). Este documento debe enviarse en tamaño carta y no tener más de 6 páginas (recomendación: llegue a máximo una página por respuesta).

El objetivo de este taller, más allá de cumplir con la obligación de la primera nota, es observar, dentro del estado del arte actual en computación como la arquitectura de computadores esta implicada (y mas desde nuestro rol como ingenieros) y como cada uno de ustedes se posiciona ante el impacto y trascendencia de este estado del arte y perspectivas. Esta dividido en dos partes y siga la instrucciones de entrega de las preguntas dadas para cada una de las partes. Recuerde que debe buscar otras referencias

Parte 1: Computación Analógica

Para llegar a la computación digital (y en si a la tecnología computacional que hoy conocemos), la humanidad ha pasado por caminos que no son lineales. Si bien, lo que conocemos (y en lo que esta particularmente basado este curso) en computación digital nos ha servido durante decadas, el auge de la inteligencia artificial y la necesidad de tratar problemas en ciencia y tecnología así como implementaciones actuales (desde lo neuromorfico hasta lo cuántico) exige un tipo de computador totalmente nuevo: el analógico. El siguiente video de divulgación (en español), denominado El Futuro de las Computadoras Será Radicalmente Diferente, del sitio Veritasium creado por Derek Muller https://youtu.be/qNtxODk_Lmk?si=cL3LbhzMAbjFpQgA trata en un poco mas de 20 minutos sobre computación análogica.

Parte 2: Inteligencia Artificial

La siguiente intervención en la Cumbre Mundial de Gobierno, realizada en Dubai el 12 de febrero 2024, se realizó una conversación entre Jensen Huang, presidente de NVIDIA, con Omar Al Olama, ministro de Inteligencia Artificial de los Emiratos Árabes Unidos, para discutir la coexistencia armoniosa del presente con el futuro a través de tecnología de punta. Este diálogo tiene como objetivo brindar información sobre los logros de los hitos tecnológicos que cierran la brecha entre las capacidades actuales y las visiones futuristas, creando un mundo donde la tecnología sea un facilitador para todos, reduciendo la brecha digital y allanando el camino para un futuro inclusivo. Esta intervención puede verse en: https://youtu.be/iUOrH2FJKfo?si=3EYbyZRQm4OprL_G denominada Who Will Shape the Future of AI? dura 24 minutos.

Teniendo en cuenta ambos videos , que pueden ver desde ya en su casa (la entrevista es un un único video en Youtube que esta en inglés, pero puede usar las opciones de traducción de la plataforma, disponibles), responda las cinco (5) preguntas planteadas siguientes:

Si su código de estudiante termina en cero o dígito par:

De la parte 1:

  1. ¿Que tan diferente es la computación analógica respecto a la digital y cuales son las desventajas de cada una de ellas?
  2. Teniendo en cuenta las materias vista en la carrera de ingeniería de sistemas e informática de la Universidad Industrial de Santander, ¿cree que se tienen los conocimientos de base para entrar en el mundo de cualquier computación? (Independiente de que su respuesta sea positiva o negativa, argumente y justifique su respuesta).

De la parte 2:

  1. ¿Por qué Jensen Huang dice que los avances tecnológicos mantendrán bajo control los costos de la IA? ¿Es cierto eso? Justifique su respuesta.
  2. Jensen Huang, afirma que nuestro trabajo (como ingenieros y científicos de computación) es crear tecnología computacional para que cualquiera pueda programar y sacarle provecho a esa tecnología... al desarrollar la idea en el panel, se plantean aspectos importantes en cuanto al foco de la educación tanto en los niños, como en los adolescentes y adultos, opuesto a lo que se esperaría que planteara el CEO de una de las compañías mas importantes de tecnología. Resuma con sus palabras este foco y ¿esta de acuerdo con ello? Justifique su respuesta y de ser necesario, agregue nuevos elementos.
  3. En la conversación, Jensen afirma que lo primero que todo país debería hacer es construir infraestructura y no trabajar en una aplicación específica. Si se quieres desarrolla energía, debes construir generadores, si quiere alimentos, debes construir granjas y si se quiere inteligencia artificial, debes construir infraestructura. No es caro, pero hay empresas que quieren asustar a todo el mundo, cuando en realidad son capacidades que se pueden comprar, y cada país es capaz de hacerlo. ¿Esta de acuerdo con esta afirmación? Justifique su respuesta y de elementos nuevos si es necesario para argumentar su respuesta.

Si su código de estudiante termina en dígito impar:

De la parte 1:

  1. ¿Como se enlaza la computación analógica con los nuevos sistemas computaciones y usos que han estallado como el caso de la Inteligencia artificial? Argumente y Justifique su respuesta.
  2. Si usted hará parte de un equipo de implementara computación analógica. ¿Que conocimientos de base deberá tener? ¿Cree que los adquiere durante la carrera de pregrado que esta cursando? (Argumente y justifique su respuesta).

De la parte 2:

  1. ¿Qué opina del consejo que da Jensen Huang que los países deben ser dueños de su inteligencia nacional y no permitir que nadie más lo haga”? ¿Por qué el afirma eso?
  2. En la conversación, se plantea la siguiente era de la IA y como tanto el desarrollo Open Source tanto en hardware como en software es importante para democratizar el conocimiento, en este caso IA. Buscando esa democratización, ¿la arquitectura de computadores esta siendo flexible, disponible y robusta, para garantizar esa siguiente era de la IA?
  3. Desde el punto de vista computacional, Jensen afirma que NVIDIA quiere democratizar la tecnología para lograr seguridad y compatibilidad. Como futuro ingeniero, ¿como usted garantizaría esa democratización? Justifique su respuesta y de ser necesario agregue nuevos elementos.

Recomendaciones:

  • Vea los dos videos antes de responder cada parte de las preguntas.
  • Lea todas las preguntas antes de responderlas.
  • Responda únicamente lo que se le pregunta (no de vueltas).
  • Justifique y argumente sus respuestas.
  • No se están pidiendo opiniones, sino argumentos. Recuerde que la diferencia entre la las opiniones es que son consideraciones, juicios o impresiones personales o subjetivas, de lo que alguien expresa sobre un hecho. En otras palabras, una opinión es una expresión subjetiva de creencias, sentimientos o juicios personales, que varía de una persona hacia otra o incluso, puede darse por la misma persona en tiempos diferentes y ser contradictoria. En cuanto a los argumentos son razonamientos que sirven para expresarse a favor o en contra de una idea o punto de vista, están basados en hechos probados y evidencia. En síntesis, un argumento es una presentación lógica de hechos o razones expuestos de forma ordenada para respaldar una afirmación y soportada por evidencia.
  • Tenga presente tanto la ortografía como los signos de puntuación.
  • Escriba claramente y cada respuesta en no más de (12) doce líneas.
  • Recuerde que es de carácter individual, no puede haber dos respuestas iguales con sus compańeros, cualquier intento de fraude simplemente se anulara el taller y se hará la respectiva anotación disciplinaria. Si durante el taller, no se detectó el fraude, pero al revisar las respuestas están tienen similitud comprobable en la manera de responderse, la nota se dividirá por la cantidad de personas que hicieron la copia, sin indagar cual fue la original.
  • No use Copilot, You, ChatGPT o similares ya que están dando respuestas erróneas pues en el entrenamiento previo, lo que responde del video de computación cuántica esta fuera del contexto del video. En el caso de la parte 2, toma opiniones pasadas de Jensen Huang y no lo que se dice en la entrevista y en algunos casos fuera de contexto. En este taller buscamos su posición crítica como futuros ingenieros de sistemas. Recuerden, ustedes crean tecnología, programan, optimizan y desarrollan inteligencias artificiales, no simplemente le creen a la tecnología.
  • Puede (y seguramente debe) usar otras referencias. Agregue las referencias de consulta adicionales al videos (bibliografía, otros enlaces, blogs o sitios que pueden ser fuentes de información.)

(30%) Laboratorios y Trabajos Prácticos

Este semestre, todas las prácticas de acuerdo a la planificación dada, se realizará por grupos al igual que las entregas. La conformación de los mismos, se hará por parte del profesor y las entregas de los laboratorios y trabajos prácticos se explicará en la sección respectiva.

Es importante que esa entrega o muestra se colocará en línea, siguiendo las indicaciones que se mostrarán en la respectiva sección.

(40%) Proyecto de Clase

Este proyecto de clase tiene como objetivo, a partir de los conocimientos explorados en el curso de Arquitectura de Computadores tanto en las sesiones teóricas como en las prácticas y actividades complementarias, mostrar las competencias adquiridas al tratar una temática especializada, proponiendo la realización de un artículo y su difusión tanto a un público especializado como general. El proyecto de clase tiene tres componentes: artículo especializado, un poster digital del proyecto final y exposición oral. Los grupos asignados estarán conformados por los mismos estudiantes de los grupos para las prácticas.

(20%) Artículo de Proyecto de Clase

Fecha de Entrega: Por definir (23:59 GMT -5 Horario de Bogotá, Colombia)

El artículo del proyecto, es una contribución dirigida a un lector especializado en el área, en este caso, ingenieros de sistemas y computación que conocen de arquitectura de computadores, que será en un formato de whitepaper o articulo técnico dirigido a personal técnico de ingeniería para tomar de decisiones. Este artículo, como cualquier artículo técnico-científico, contará con las partes fundamentales de un artículo (pueden guiarse con los artículos científicos o técnicos de sus compañeros de semestres pasados u otras fuentes): desde el resumen del mismo, la introducción, contenido, conclusión, discusión si es necesaria y por supuesto las fuentes de información más allá del contenido de base dado para la realización del trabajo. En el artículo mismo se mide la calidad del trabajo realizado.

Requisitos para el artículo:

  • Mínimo (8) ocho y máximo (10) diez páginas en Español. El Título y Resumen (abstract) en español y en  inglés (máximo 10 lineas para cada uno de los idiomas). NO OLVIDE DARLE UN TITULO QUE DEBE SER DIFERENTE AL TITULO DE LA ASIGNACIÓN PERO QUE GENERE UN INTERÉS A LA LECTURA (en Español y en inglés). El mínimo y el máximo de páginas Incluye gráficas, referencias, tablas y figuras.
  • Formato IEEE en UNA columna para series de conferencias puede guiarse con el siguiente enlace, teniendo en cuenta dentro de ese template tanto el tipo de fuente utilizada como el tamaño de página, espacio, etc.: http://www.ieee.org/conferences_events/conferences/publishing/templates.html
  • El archivo se enviará al correo principal del profesor, sin olvidar en el texto del correo, colocar los nombres completos de los autores, código y grupo del curso al que pertenecen (A1, A2, B1...). Debe enviarse solo desde el correo de uno de los autores.
  • El artículo debe entregarse en un único archivo .pdf , indicando en el correo de entrega el asunto: ENTREGA ARTICULO FINAL ARQUITECTURA 1-2024. Observe la fecha y hora desde cuando se van a recibir los artículos y hasta cuando se recibirán. Después de dicha fecha y hora límite no se aceptarán artículos.
  • Un software anti plagio o plagiarismo se utilizará para el artículo, recuerde tener cuidado con el plagio.
  • Recuerde es un artículo técnico, no un artículo científico.
(20%) Presentación del Proyecto del Proyecto de Clase

Presentación: Por definir,

La presentación del proyecto de clase será en vivo, durante la sesión de los jueves, iniciando mas temprano para que todos los grupos se presenten, usando un poster digital.

Características Generales del Poster Digital

  • El tamaño de su documento debe ser de 48 "de ancho x 27" de alto (solo modo horizontal debido a la visualización amigable de la presentación virtual).
  • Deje un margen de 1” alrededor del borde. Esto le dejará un área de 46” de ancho x 25” de alto para su póster.
  • No sobrepase la imagen o escriba en esta área.
  • Recomendación: Puede hacerlo en powerpoint y guarde su archivo como: Alta resolución PDF listo para imprimir a TAMAÑO COMPLETO 300 ppp.
  • Ejemplos: Visite el sitio: https://www.nvidia.com/gtc/posters/
  • Bonus: Su poster Digital, al ser digital, puede contener animaciones.

Características de la Presentación Oral: (Por definir. (GMT -5 Bogota Time)

Esta presentación oral se realiza para presentar en un formato rápido, los puntos mas importantes y conclusiones del trabajo final. Tenga en cuenta tanto el manejo del tiempo como el hecho que todo lo que se diga en esa presentación (preguntas del profesor o de los estudiantes) puede entrar en la evaluación final.

  • El tiempo de presentación es de cinco (5) Minutos Estrictos, TODOS LOS INTEGRANTES DEL GRUPO DEBEN INTERVENIR. Recuerde el pasarse de ese tiempo PENALIZA AMPLIAMENTE LA CALIFICACION RECIBIDA. LA PRESENTACION SE INTERRUMPIRA POR EL PROFESOR, PASADOS SIETE MINUTOS (DOS MINUTOS ADICIONALES)
  • El poster digital deberá enviarse al profesor, desde el dia viernes anterior a la presentación, a las 16:00 (4:00 p.m.) hasta el dia martes a las 12:00 Asunto del Correo: Poster Digital Proyecto Final Grupo (Identificación del Grupo Asignada, por ejemplo, si su grupo es el 23, deberá ser el asunto: Poster Digital Proyecto Final Grupo 23 ). Recuerden en el texto del correo, colocar el nombre de los integrantes.
  • El orden de presentación será dado por el profesor y comunicado al inicio de la sesión.
  • Las presentaciones iniciarán a las 6:00 a.m. debido a la cantidad de grupos y finalizará a las 9:00 a.m..
  • Las preguntas lanzadas desde el público pueden ser un bonus en la nota final de la presentación respectiva de manera individual (no solo para el grupo).
  • El profesor será el moderador de la sesión de presentación y habrá un invitado.
  • Aspectos importantes a tener en cuenta: calidad de la presentación, manejo de tiempo y respuesta a preguntas.

(15%) Taller Individual Final

Esta evaluación se realizará de manera oral e individual y podrá presentarse a partir del Jueves 2 de Mayo, Limite de Realización Jueves 30 de Mayo de 2024, en el cual responderá en una entrevista de duración de un máximo de 15 minutos una única pregunta hecha por el profesor, en el tablero, sobre alguno de los temas dados del curso (o de las prácticas) del curso. El estudiante deberá solicitar la cita al profesor, a partir del Jueves 2 de mayo, y de acuerdo a disponibilidad esta se asignará.

TEMÁTICAS DE PROYECTOS

Los proyectos que están dados, deben tratarse como ingenieros de sistemas y especialistas en arquitectura de computadores, desde nuestro punto de vista como ingenieros COMPUTISTAS sin olvidar que en este curso hemos estado tratando la relación hardware y software. Téngalo presente para el desarrollo del mismo. No olviden ver las condiciones dadas anteriormente (no se encuentra tachado) y consultar referencias bibliográficas y fuentes de información adicionales a las dadas.. Se recomienda usar los recursos bibliográficos que puede acceder por parte de la UIS en: http://tangara.uis.edu.co/ y vea los trabajos disponibles de los semestres anteriores en el sitio del curso.

Aspectos que se tendrán en cuenta en el proyecto:

1.     Soporte hacia los requerimientos funcionales y comprensión de las preguntas dadas (ver la diapositiva sobre requerimientos funcionales a tener en cuenta)

2.     Original y novedad de la solución propuesta.

3.     Organización y presentación de los resultados.

4.     Métricas adecuadas usadas y estandáres.

5.     Aspectos ambientales y éticos.

PROYECTOS FINALES ARQUITECTURA DE COMPUTADORES 1-2024

Los proyectos finales planteados para este semestre, corresponden a ejercicios basados en los con casos de uso, presentes en varias fuentes, como en  el libro guía Patterson and Hennesy, Computer Architecture; A Quantitative Approach, o el libro Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface), disponibles en diferentes sitios, en la biblioteca, pero también en el sitio del curso, en la sección de bibliografía y fuentes de información. Igualmente, se ha usado información del sitio recomendado en el curso para hacer comparaciones: https://www.cpubenchmark.net/ y de las diapositivas utilizadas. Sin embargo, recuerde que debe buscar nuevas fuentes de información necesarias, como la documentación dada por los fabricantes. Tenga en cuenta que debe observar las características técnicas arquitecturales de los elementos dados y si es necesario, resaltar características especiales que tengan esos elementos y la integración de los mismos en un sistema.

Si asistió a las sesiones teóricas y participó activamente en el desarrollo de los talleres prácticos tiene el conocimiento de base para atacar el proyecto asignado. La asignación es por orden ascendente, es asi que para el proyecto 1 se asigna para el equipo.

Proyecto 1 : Equipo 1. (Basado en los Casos de Estudio y Ejercicios por Diana Franklin en el libro Patterson and Hennesy, Computer Architecture; A Quantitative Approach,).  Caso de Estudio 2. Consumo de Energía en Sistemas de Cómputo (Página 63 de la Quinta Edición).

La tabla siguiente muestra el consumo de energía de varios componentes del sistema informático. En este ejercicio, se mira cómo el disco duro afecta el consumo de energía del sistema.

Componente Producto Rendimiento Consumo de Energía
Procesador AMD Ryzen Threadripper PRO 7995WX Clockspeed: 2.5 GHz

Turbo Speed: 5.1 GHz

350 W (Media de Uso)
Memoria DRAM Kingston KF548C38-32 Latencia: 51 ns 1.1 V
Disco Duro Corsair MP700 PRO Capacidad: 931.5 GB

Random Seek Read Write (IOPS 32KQD20): 3,805 Mbytes/Sec

11. 5 W
Corsair MP700 Capacidad 1.8 TB

Random Seek Read Write (IOPS 32KQD20): 3,821 Mbytes/Sec

10.5 W

Tabla de Especificaciones de Elementos

a.        Tenemos un sistema en desktop para uso especializado, y suponiendo la carga máxima para cada componente y una eficiencia de la fuente de alimentación del 80%, ¿qué potencia debe entregar la fuente de alimentación del servidor a un sistema con un chip AMD Ryzen Threadripper PRO 7995WX, de 2.5 Ghz, 94 Nucléos que soporta 128 hilos, y que se encuentra con una memoria RAM Kingston KF548C38-32 DDR4 y,  un disco duro Corsair MP700 PRO ?

b.        ¿Cuánta energía consumirá la unidad de disco duro Corsair MP700 PRO  de si está inactiva aproximadamente el 60% del tiempo?

c.        Dado que el tiempo para leer datos de una unidad de disco de duro Corsair MP700 PRO será aproximadamente el 75% del de un disco Corsair MP700, ¿en qué tiempo de inactividad del disco de Corsair MP700 PRO será igual el consumo de energía, en promedio, para los dos discos? ¿Cambiaría el disco?

Un factor crítico en el consumo de energía y su respectiva alimentación en cualquier tipo de sistema es la refrigeración. Como se sabe, si el calor no se elimina de la computadora de manera eficiente, los ventiladores devolverán aire caliente a la computadora, no aire frio. Entonces, las diferentes decisiones de diseño afectan la refrigeración necesaria y por tanto los costos del sistema.

d.        El sistema en cuestión se organiza en un servidor con un chasis determinado y un rack que disipa 14KW y vale US $7000 dólares. ¿Para la solución dada, de cuantas U debe ser el tamaño del servidor? ¿Cuánto seria la mínima capacidad de la fuente de poder principal por servidor para energizar lo mínimo del sistema dado?

e.        Teniendo en cuenta la información dada ¿Cuántos servidores cabrían en un chasis estándar (recuerde que la medida es la disipación en KW)?

f.           Describa un plantee una solución completa (sin uso de aceleradores, pero si una tarjeta de red y los elementos que hagan falta), mostrando un costo estimado, teniendo en cuenta los componentes mostrados en la tabla (por supuesto debe escoger un único disco duro especifico de los dos dados).

Proyecto 2. Equipo 2. (Basado en los Casos de Estudio y Ejercicios por Norma P. Jouppi, Naveen Muralimanohar, y Sheng LI en el libro Patterson and Hennesy, Computer Architecture; A Quantitative Approach).  Caso de Estudio 2. Poniendo todo junto: sistemas de memoria altamente paralelos (Página 133 de la Quinta Edición).

El programa siguiente puede ser usado para evaluar el comportamiento de un sistema de memoria. Esta realizado en C y en MS Visual Studio. Principalmente busca tener una sincronización precisa y luego hacer que el programa recorra la memoria para invocar diferentes niveles de jerarquía.  Viendo la documentación es posible identificar que la primera parte es un procedimiento que utiliza una utilidad estándar para obtener una medida precisa de tiempo de CPU usuario. La segunda parte es un bucle anidado que se usa para leer y escribir en la memoria en diferentes pasos y para diferentes tamaños de caché. La tercera parte calcula los tiempos de la sobrecarga de un bucle anidado, únicamente restando los tieppos totales medidos para ver cuánto tiempo duran los accesos. Los resultados se generan en un formato de achivo .cvs para importar los resultados en hojas de cálculo. Este código se encuentra en una versión alternativa en: https://github.com/gaomy3832/mem_sys_probe/blob/master/src/aca_ch2_cs2.c y los detalles de los autores y demás se pueden observar en la página del libro guía anteriormente mencionada.

#include "stdafx.h"

#include <stdio.h>

#include <time.h>

#define ARRAY_MIN (1024) /* 1/4 smallest cache */

#define ARRAY_MAX (4096*4096) /* 1/4 largest cache */

int x[ARRAY_MAX]; /* array going to stride through */

double get_seconds() { /* routine to read time in seconds */ __time64_t ltime;

_time64( &ltime );

return (double) ltime;

}

int label(int i) {/* generate text labels */ if (i<1e3) printf("%1dB,",i);

else if (i<1e6) printf("%1dK,",i/1024);

else if (i<1e9) printf("%1dM,",i/1048576);

else printf("%1dG,",i/1073741824);

return 0;

}

int _tmain(int argc, _TCHAR* argv[]) {

int register nextstep, i, index, stride;

int csize;

double steps, tsteps;

double loadtime, lastsec, sec0, sec1, sec; /* timing variables */

/* Initialize output */

printf(" ,");

for (stride=1; stride <= ARRAY_MAX/2; stride=stride*2) label(stride*sizeof(int));

printf("\n");

/* Main loop for each configuration */

for (csize=ARRAY_MIN; csize <= ARRAY_MAX; csize=csize*2) { label(csize*sizeof(int)); /* print cache size this loop */

for (stride=1; stride <= csize/2; stride=stride*2) {

/* Lay out path of memory references in array */

for (index=0; index < csize; index=index+stride)

x[index] = index + stride; /* pointer to next */ x[index-stride] = 0; /* loop back to beginning */

/* Wait for timer to roll over */

lastsec = get_seconds();

sec0 = get_seconds(); while (sec0 == lastsec);

/* Walk through path in array for twenty seconds */

/* This gives 5% accuracy with second resolution */

steps = 0.0; /* number of steps taken */

nextstep = 0; /* start at beginning of path */

sec0 = get_seconds(); /* start timer */ { /* repeat until collect 20 seconds */ (i=stride;i!=0;i=i-1) { /* keep samples same */

nextstep = 0;

do nextstep = x[nextstep]; /* dependency */

while (nextstep != 0); }

steps = steps + 1.0; /* count loop iterations */

sec1 = get_seconds(); /* end timer */ } while ((sec1 - sec0) < 20.0); /* collect 20 seconds */

sec = sec1 - sec0;

/* Repeat empty loop to loop subtract overhead */

tsteps = 0.0; /* used to match no. while iterations */

sec0 = get_seconds(); /* start timer */ { /* repeat until same no. iterations as above */ (i=stride;i!=0;i=i-1) { /* keep samples same */

index = 0;

do index = index + stride;

while (index < csize);

}

tsteps = tsteps + 1.0;

sec1 = get_seconds(); /* - overhead */ } while (tsteps<steps); /* until = no. iterations */

sec = sec - (sec1 - sec0);

loadtime = (sec*1e9)/(steps*csize);

/* write out results in .csv format for Excel */

printf("%4.1f,", (loadtime<0.1) ? 0.1 : loadtime); }; /* end of inner for loop */

printf("\n");

}; /* end of outer for loop */

return 0;

}

Programa en C para Evaluar el Sistema de Memoria

FiguraUNO.png

Figura 2.30 : Ejemplo de Resultados para el programa en C para Evaluar el Sistema de Memoria

a.        Observe y use el programa (cualquiera de los dos). Compílelo y ejecútelo, describa el programa (librerías usadas, rutinas clave, funciones y valores, cuáles son las salidas y que es lo que hace detalladamente. Ejecútelo sobre dos sistemas diferentes con configuración diferente (de procesador y memoria) y compare las salidas. Puede usar Microsoft Visual Studio pero preferiblemente use gcc en Linux.

b.        Reproduzca la gráfica de ejemplo de la Figura 2.30 (página 135 del libro guía) para cada una de las configuraciones con sus resultados y explíquela.

Usando los resultados reproducidos, con su propia gráfica:

c.        ¿Cuáles son el tamaño total, el tamaño del bloque de caché de segundo nivel? ¿Qué significa esto?

d.        ¿Cuál es el tamaño de la memoria principal?

e.        ¿Como modificaría el código o si es necesario realizar otro para probar algunas otras características de una caché de instrucciones? ¿Por qué cree que es importante conocer estas características?

Proyecto 3. Equipo 3. (Basado en los Ejercicios del Capítulo 1. del libro Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface). Ejercicio 1.10  (Página 67).

Supongamos que se tiene un procesador Intel Xeon E3-1285 v6 de 4.10GHz cuyo consumo de energía por núcleo esta dado por la ecuación:

Consumo de Poder Eléctrico= 146,3mA/GHz de voltaje2

Y cuya operación de voltaje para todo el procesador esta descrito por la ecuación:

Voltaje = (1/5) de Frecuencia +0.6

Teniendo en cuenta que se parte de un TDP de 79 W y teniendo en cuenta que la frecuencia es de 4.1 GHz, el voltaje sería de 1.42 V.

Igualmente, al correr un benchmarking, si observamos las instrucciones por núcleo usadas y el CPI promedio, se puede realizar la siguiente tabla.

Núcleos por Procesador Instrucciones por Núcleo CPI
1 1.00E+10 1.0
2 5.00E+09 1.2
4 2.50E+09 1.7

Tabla de Instrucciones por Núcleo y CPI


a.        Encuentre el consumo de poder medio de un programa que se ejecuta en 1, 2 y 4 núcleos asumiendo que cada núcleo opera a 3.7 GHz de Frecuencia.

b.        Teniendo en cuenta la tabla anterior (Tabla de Instrucciones por Núcleo y CPI) ¿cuál sería el tiempo de ejecución de un programa para 1, 2 y 4 núcleos?  Explique la tabla dada.

c.        Teniendo en cuenta las especificaciones que puede encontrar en el sitio del fabricante, para ese procesador, cual sería la configuración mínima ideal para usar ese procesador en un servidor (DRAM, Disco Duro, Interfaz de Red, Tamaño del chasis del servidor, fuente de poder). ¿Cuál sería su costo aproximado en dólares?

d.        Teniendo en cuenta la configuración y organización sugerida en el punto C. ¿hacia que aplicaciones dirigiría la solución? ¿Qué limitaciones arquitecturales tendría?

e.        ¿Por cual procesador de otro fabricante podría remplazarse, suponiendo que la configuración de su servidor sea compatible? Justifique su respuesta.

Proyecto 4. Equipo 4. (Basado en los Ejercicios del Capítulo 2. del libro Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface). Ejercicio 2.20

El siguiente código (que se encuentra igual disponible en: https://gist.github.com/kenreisan/2477303b79bc326af945b0623b54a8a2)  calcula la serie de Fibonnaci usando el método iterativo.

/*

* Autor: Eduardo Romero

* Version: 1.0

*

* Programa para calcular los numeros de la serie de

* Fibonacci. Se usa el metodo iterativo.

*

* Por las limitantes del rango de numeros que puede

* contener un "unsigned long long" el numero de Fibonacci

* que puede mostrar el programa es fibo93.

*/


#include <stdio.h>

#include <stdlib.h>


unsigned long long fibonacci(int num){

   /*

    * Recibe:  Numero de la serie de Fibonacci.

    *

    * Regresa: El valor correspondiente alo numero

    *          de la serie de Fibonacci.

    *

    * Los casos bases son 0 y 1, despues solo es una suma

    * numero fibo-1 y fibo-2.

    */

   unsigned long long fibo1, fibo2, fibor;


   if (num <= 0)

       return 0;

   if (num == 1)

       return 1;


   fibo1 = 0;

   fibo2 = 1;


   for (int i=2; i <= num; i++){

       fibor = fibo1 + fibo2;

       fibo1 = fibo2;

       fibo2 = fibor;

   }


   return fibor;

}


int main(int argc, char *argv[]){

   /*

    * Recibe:  El numero de la serie de Fibonacci desde la

    *          linea de comandos.

    *

    * Imprime en pantalla el numero deseado de la serie.

    */

   unsigned long long resultado;


   resultado = fibonacci(atoi(argv[1]));


   printf("fibo[%s] = %llu\n",argv[1],resultado);


   return 0;

}

a.        Compilelo usando usando gcc y ejecútelo (recuerde que de acuerdo al código debe colocar el número máximo para encontrar la serie), en un computador personal de su preferencia diciendo la configuración principal arquitectural (Procesador y Memoria, compilador utilizado (gcc-4, icc, clang, etc), sistema operativo (distribución). Use las opciones -01w, -02 y -03 al compilar generando un ejecutable, por ejemplo de cada manera: suejecutable01.exe, suejecutableO2.exe y asi sucesivamente ¿Que observa en el comportamiento del código tanto al compilarlo como al ejecutar? ¿Que pasa si usa las opciones -O, -O0, -Ofast -Og y Oz?

b.        Tomando el código .c paselo al ensamblador de base usando:

gcc -S -masm=intel FiboFuente.c -o miarchivo.asm

y describa que observa en el archivo .asm

c.        Para cada uno de los ejecutables anteriores, y describa que observa, identificando la cantidad de instrucciones.

objdump --disassemble=main -Mintel64 sucodigoejecutable o 
objdumb -D sucodigoejecutable

d.        Observando el .asm del punto b y la salida del objdumb del punto .c, y sabiendo que una optimización es el proceso de transformación de un fragmento de código en otro trozo de código funcionalmente equivalente para mejorar una o varias de sus características. Las dos características más importantes son la velocidad y el tamaño del código, ¿Observa variación en ellas (mejora, desmejora)? Recomendación: use las opciones de sistema operativo para saber cuánto se demora en ejecutar un programa.

Opción: Puede usar otro código de Fibonacci en c o c++ pero debe realizar los anteriores puntos.

Proyecto 5. Equipo 5. (Basado en los Ejercicios del Capítulo 3. del libro Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface). Ejercicio 3.12

Como se vió en el curso, la multiplicación en coma flotante es incluso más complicada y desafiante que la suma en coma flotante, y ambas palidecen en comparación con la división en coma flotante, siendo un reto incluso para operaciones con tecnología nueva y para uso nuevo, como pasa con la inteligencia artificial. En ese orden de ideas,   NVIDIA propuso en el mes pasado la cuarta generación de sus chips Grace Hooper y Backwell, para arquitecturas computacionales que soporten inteligencia artificial (https://www.nvidia.com/en-us/data-center/tensor-cores/) Teiendo en cuenta esas especificaciones dadas, hay dos precisiones posibles y estandarizadas que pueden observarse en la siguiente tabla:

Tecnología: Blackwell Hopper
Supported Tensor Core precisions FP64, TF32, BF16, FP16, FP8, INT8, FP6, FP4 FP64, TF32, BF16, FP16, FP8, INT8
Supported CUDA® Core precisions FP64, FP32, FP16, BF16 FP64, FP32, FP16, BF16, INT8

Tabla de Especificaciones preliminaries

a.        Observando la table anterior, ¿Porque es relevante esta información y cuál es la diferencia entre estos dos tipos de tecnología? Haga una descripción de los aspectos más relevantes en términos de operaciones aritméticas para sistemas computacionales.

b.        Calcule el producto de A y B manualmente, suponiendo que A y B están almacenados en el formato NVIDIA modificado de 16 bits para Tensor Cores, redondeando el resultado y mostrando como ejemplo, como serian esos pasos, como se presenta en la tabla siguiente:

A B
a. –8.0546875 × 100 –1.79931640625 × 10–1
b. 8.59375 × 10–2 8.125 × 10–1

c.        Teniendo en cuenta el cálculo a mano indique si hay desbordamiento (sea Overflow o Underflow). Analice que pasaría con un patrón de 24 bits y también como un número decimal. ¿Qué tan preciso es su resultado? ¿Cómo se compara con el número que si haces la multiplicación usando 32Bits?

d.         Esta tecnología es compatible con IEEE 754. ¿A que se refiere cuando se dice que se asume 1 guard, 1 round bit y 1? Sticky bit?

e.        En términos arquitecturales (computacionales), ¿Cuál es la diferencia entre entrenamiento e inferencia? ¿Por qué es importante el punto flotante y la manera de manejarlo en las operaciones aritméticas entonces de acuerdo a estas dos tareas?

Proyecto 6. Equipo 6. (Basado en los Ejercicios del Capítulo 4. del libro Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface). Ejercicio 4.1

La siguiente figura, es la implementación básica del subconjunto MIPS, incluidos los multiplexores y líneas de control necesarios. El multiplexor superior (“Mux”) controla qué valor reemplaza a la PC (PC + 4 o la dirección de destino de la sucursal); El multiplexor está controlado por la puerta que conecta en “Y” la salida cero de la ALU y una señal de control que indica que la instrucción es una rama. El multiplexor intermedio, cuya salida regresa al archivo de registro, se utiliza para dirigir la salida de la ALU (en el caso de una instrucción aritmético-lógica) o la salida de la memoria de datos (en el caso de una carga) para escribir en el archivo de registro. Finalmente, el multiplexor inferior se usa para determinar si la segunda entrada de ALU proviene de los registros (para una instrucción aritmético-lógica O una rama) o del campo de compensación de la instrucción (para una carga o almacenamiento). Las líneas de control agregadas son sencillas y determinan la operación realizada en la ALU, si la memoria de datos debe leer o escribir y si los registros deben realizar una operación de escritura. Las líneas de control se muestran en color para que sean más fáciles de ver.

FiguraDOS.png

FIGURA 4.2 La implementación básica del subconjunto MIPS.

Igualmente, teniendo en cuenta que diferentes instrucciones utilizan diferentes bloques de hardware en la implementación básica de un solo ciclo y observando la siguiente instrucción:

Instrucción Interpretación
a. AND Rd,Rs,Rt Reg[Rd] ND Rd,Rs,Rt Reg[Rd]
b. SW Rt,Offs(Rs) Mem[Reg[Rs] SW Rt,Offs(Rs) Mem[Reg[Rs]

a.        Explique que hace la instrucción dada.

b.        Observando la figura, explique detalladamente las señales de control generadas para la instrucción descrita y responda ¿cuáles son ellas?.

c.        Identifique los bloques o recursos útiles para la instrucción dada. Explique la instrucción precisamente en la figura.

d.        Claramente hay recursos que producen salidas y otros que no. ¿Identifíquelos y diga por qué?

e.        En qué caso real de aplicación implementaría el conjunto MIPS mostrado en la figura.

Proyecto 7. Equipo 7. (Basado en los Ejercicios del Capítulo 5. del libro Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface). Ejercicio 5.17

Teniendo en cuenta los procesadores AMD Ryzen 7 PRO 7730U como AMD Ryzen 7 7735HS son multiprocesadores de chips (CMP), que tienen múltiples núcleos y sus cachés son L1: 512KB, L2: 4.0MB, L3: 16MB y pueden llegar hasta 144 MB de memoria en chip, usados para equipos de escrito, se va a hacer énfasis en la memoría caché principalmente. El diseño de esas caché en chip CMP tiene ventajas y desventajas interesantes. Las siguiente tablas muestran las tasas de errores y las latencias de aciertos para dos pruebas comparativas con diseños de caché L2 privada y compartida. Supongamos que la caché L1 falla una vez cada 32 instrucciones, obviando la L3 para este benchmarking.

Privada Compartida
Benchmark AMD Ryzen 7 PRO 7730U  misses-per-instruction 0,25 0,10
Benchmark AMD Ryzen 7 7735HS misses-per instruction 0,06 0,03

Tabla de resultados de Benchmarking

Private Caché Shared Caché Memory
a. 10 30 260
b. 20 60 240

Tabla de de Latencias de Acierto

a.        Realice una comparación técnica entre los dos procesadores, exponiendo las principales diferencias arquitecturales (y lo que implica, como ventajas y desventajas) así como las similitudes. Recuerde haga énfasis en la memoria y caché.

b.        La latencia de la caché compartida aumenta con el tamaño del CMP. Que hay que tener en cuenta para elegir un mejor diseño si la latencia de la caché compartida se duplica, teniendo en cuenta que el ancho de banda fuera del chip se convierte en un cuello de botella a medida que aumenta la cantidad de núcleos CMP. Elija el mejor diseño si la latencia de la memoria fuera del chip se duplica.

c.        Siguiendo la ley de Moore, supongamos que las nuevas generaciones de procesadores duplican el número de núcleos cada 18 meses. Para mantener el mismo nivel de rendimiento por núcleo, ¿cuánto más ancho de banda de memoria fuera del chip se necesita para un procesador de 64 Núcleos?

d.        Teniendo en cuenta ahora si, todos los niveles de caché y la jerarquía de memoria: ¿Que clases de optimizaciones pueden mejorar la cantidad de errores simultáneos?

e.        En los dos procesadores dados, ¿para que serviría la Caché L3? ¿Afectaría los resultados de las tablas anteriores? Justifique su respuesta, por ejemplo, explicando como y por qué en caso de afectar y si no, por qué no.

Proyecto 8 . Equipo 8. (Basado en los Ejercicios del Capítulo 6. del libro Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface). Ejercicio 6.20

La evaluación y el mantenimiento diarios de sistemas computacionales operativos involucran muchos de los conceptos discutidos en todo el curso. Teniendo en cuenta  las complejidades de la evaluación de sistemas, se plantea un análisis para un uso especifico, en este caso para inteligencia artificial.

a.        Configure una solución con una NVIDIA GH200 Grace-Hopper para proporcionar 50 terabytes de almacenamiento que ejecutan diversas aplicaciones de inteligencia artificial. Su configuración debe minimizar el consumo de energía y al mismo tiempo abordar los problemas de rendimiento y disponibilidad de la matriz de discos. Asegúrese de considerar las propiedades de ejecuciones grandes al realizar su configuración (No olvide identificar tanto la cantidad de total y como tipo de procesadores involucrados en la NVIDIA GH200)

b.        Recomendar un sistema de copia de seguridad y archivado de datos para la matriz de discos para la solución propuesta, describiendo en detalle su recomendación, incluyendo el sistema de archivos a usar, sugiriendo la capacidad mínima y la capacidad idónea.

c.        Evalúe el costo y la idoneidad para la aplicación principal de este sistema. Seleccione los parámetros para comparar utilizando las propiedades de la aplicación, así como los requisitos especificados.

d.        De acuerdo con su recomendación, seleccione dos posibles integradores/fabricantes (HPE, Lenovo, SuperMicro, DELL) y compárelos.

e.        El sistema puede ser enfriado tanto por aire como por agua, teniendo en cuenta lo disponible en el mercado, realice una comparación técnica y en costos de la solución propuesta.

Proyecto 9 . Equipo 9. (Basado en los Ejercicios del Capítulo 7. del libro Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface). Ejercicio 7. 20

El Benchmarking es una evaluación comparativa y es considerado un campo de estudio que implica identificar cargas de trabajo representativas para ejecutar en plataformas informáticas específicas con el fin de poder comparar objetivamente el rendimiento de un sistema con otro. En este ejercicio compararemos dos clases de puntos de referencia, usando LINPACK. Este benchmarking se utiliza para resolver un sistema denso de ecuaciones lineales, que sirve como punto de referencia que permite al usuario escalar el tamaño del problema y optimizar el software para lograr el mejor rendimiento para una máquina determinada. El resultado se da en número de FLOP por segundo.

a.        Usando una versión de LINPACK para PC (hay decenas en internet que igualmente puede buscarse como HPL), seleccione una y explique su funcionamiento. Ejecútela en dos sistemas multinúcleo con configuraciones tanto de memoria como de procesador diferentes. Compare los resultados mostrando cual seria el equipo con mas capacidades y mas velocidad de acuerdo a ese benchmark.

b.        Observe los últimos resultados del Top500 (https://www.top500.org/) que usa el mismo LINPACK pero para grandes plataformas. Tomando los tres primeros sistemas en la lista, explique los resultados y haga las comparaciones pertinentes en esos tres sistemas.

c.        En la misma página se presenta tanto el HPCG como el Green500. Explique estos dos benchmarking en detalle.

d.        Observe los últimos resultados tanto para el HPCG como el Green500 y compárelos con los del Top500. ¿Qué discusión se plantearía sobre los resultados, por ejemplo, la diferencia entre ellos?

e.        Calcule o determine (a través de un análisis intuitivo) como serían los resultados que obtendría en HPCG como en Green500 en los dos sistemas usados para el punto a.

Equipos de Trabajo (2-2024)

Estos equipos estan dados tanto para las prácticas como para el desarrollo del proyecto final.

Grupo A1

G2024-A1.png


Grupo A2

G2024-A2.png

Grupo E2

G2024-E2.png


PRACTICAS 2-2024

  • Condiciones Generales
    • Cada grupo de asignado para el trabajo final es el mismo para la entrega de las prácticas, compuesta por un número determinado de estudiantes matriculados en el curso. Las asignaciones de los grupos están dados en el item del proyecto final para este semestre.
    • Cada grupo debe crear un espacio GitHub/GitLab compartido, abierto y de acceso libre, como proyecto y en el que los integrantes esten enlazados. En este espacio se subirán los archivos .md .hdl y un readme en el que expliquen que hicieron en cada taller de Nand2Tetris.
    • Las entregas de las prácticas deben publicarse estrictamente en la fecha máxima indicada para cada una de ellas, la cual se encuentra subrayada. Desde el momento del curso hasta las 23:00 (11:00 p.m.). Después de la fecha y hora de entrega dada, la calificación se penalizará disminuyendo el valor de la misma.
    • Las prácticas tienen fecha sugerida de realización, sin embargo, pueden entregarse antes. Recuerde La fecha de entrega esta subrayada en el encabezado de cada práctica.
    • Cada entrega de práctica deberá indexarse e identificarse correctamente, por ejemplo un título podría ser: Práctica 1: Familiarizándose con las sesiones prácticas e introducción al curso.
  • Un único miembro del grupo debe enviar el correo respectivo informando sobre la publicación de la entrega en el sitio tanto al profesor como al soporte del curso. Por ejemplo colocando en el asunto del correo: Entrega Práctica 1 - Equipo 1 del Curso de Arquitectura de Computadores 2-2024. Se recomienda en el cuerpo del correo colocar los nombres de los integrantes del grupo con su respectivo código de estudiante, que participaron en esa práctica.
  • Recuerden que en el readme, deben colocar por escrito una descripción o introducción a la práctica misma, agregando la explicación de los códigos y la bibliografía utilizada.
  • Es posible que para una práctica específica existan preguntas adicionales, condiciones particulares o bonus propuestos.
  • ADVERTENCIAS
    • ADVERTENCIA UNO: Todas las prácticas deben realizarse de manera propia por cada grupo, por lo que se espera que las entregas relacionadas con las prácticas sean diferentes, incluyendo las de los semestres anteriores. Al encontrar prácticas idénticas en redacción o códigos, la calificación se dividirá entre los grupos implicados.
    • ADVERTENCIA DOS: Si se descubre que la práctica fue mandada a realizar o hubo plagio (por ejemplo de los trabajos del semestre pasado, que pueden ser consultados pero no copiados, se aplicará (adjuntando las evidencias que sustenten la penalización y el debido proceso respectivo) el reglamento de estudiante de pregrado (que puede terminar en suspensión, cancelación de la asignatura o de la matricula o acciones legales).
    • ADVERTENCIA TRES: Normalmente, de manera aleatoria en los cursos teóricos se preguntará a alguno de los integrantes del grupo, una breve explicación de lo que hizo en la práctica. Esto aplica para todas las entregas.
  • RECOMENDACIONES
    • RECOMENDACION UNO: Si alguno de los integrantes del grupo no esta trabajando, pueden informar tanto al soporte del curso como al profesor via correo electrónico, OPORTUNAMENTE, no lo dejé hasta el final. Sin embargo se espera que las diferencias sean tratadas por cada grupo independientemente al interior de cada uno.
    • RECOMENDACION DOS: Lea detenidamente las recomendaciones tanto de realización como para entrega de la práctica.
  • Por la dificultad de las prácticas de este semestre, algunas de ellas están pensadas para que se realicen en dos semanas (correspondiente a dos sesiones prácticas consecutivas).
  • La publicación de la práctica correspondiente debe hacerse en estricto orden y no antes de la fecha de entrega (ver las recomendaciones anteriores respecto a la fecha y hora de entrega) . TODAS LAS PRACTICAS ESTAN DISEÑADAS PARA ENTREGARSE DE ESA MANERA. En la siguiente lista de prácticas la fecha de entrega aparece como subrayada.
  • Nota importante: NO OLVIDE AGREGAR LAS REFERENCIAS BIBLIOGRAFICAS O FUENTES DE INFORMACION USADAS PARA DESARROLLAR EL LABORATORIO AL FINAL DE EN UNA SECCION DE LA PRACTICA CORRESPONDIENTE. LA FALTA DE REFERENCIAS BIBLIOGRAFICAS Y FUENTES DE INFORMACION PENALIZA LA EVALUACION DE LA PRACTICA (Tenga en cuenta esto para todas las entregas).

Primera Práctica (Realización 15 y 22 de Agosto de 2024)

Esta práctica se realiza ya por los grupos de trabajo designados y en dos partes.

Primera Parte:

Conózcanse con sus compañeros de grupo de trabajo.

Seleccionen entre sus compañeros un nombre para el grupo de trabajo de únicamente una frase en cualquier idioma: por ejemplo: Grupo Vital, Grupo Tesla (este no es tan original), Grupo Bucaro, etc. Este nombre de grupo, se usa como nombre de proyecto en su espacio GitHub/GitLab.

Cree el sitio web dentro del espacio en GitHub/GitLab-proyecto que sera para la entrega de prácticas, teniendo en cuenta los tres items principales: Integrantes, Prácticas y Trabajo Final.

En el sitio web creado, en la sección integrantes, coloque los nombres de ustedes, una pequeña descripción bibliográfica de cada uno de los integrantes del grupo, información importante (enlaces donde se puede encontrar más información académica o profesional, redes sociales (X, instagram, facebook, linkedin), nivel en el que se encuentra, un hobbie), una frase que describa su gusto profesional de no mas de 280 cáracteres (por ejemplo, " Entusiasta de la Inteligencia Artificial y la Tecnología") y una fotografía reciente (ver por ejemplo: https://www.sc3.uis.edu.co/staff/) en no mas de 20 renglones por integrante y mínimo 12. Tamaño de la letra de base 12px.

Al crear y publicar el sitio, difunda su creación y existencia en las redes sociales (por ejemplo, con un X por la cuenta de alguno de sus compañeros o por facebook).

Una recomendación, si desea una guía para principiantes de Git/GitHub-GitLab en español es la guia oficial de Git: https://docs.github.com/es o https://www.freecodecamp.org/espanol/news/guia-para-principiantes-de-git-y-github/

Segunda Parte:

Los profesores Noam Nisan y Simon Schocken, autores del libro The Elements of Computing Systems, Building a Modern Computer from First Principles, disponible aquí, crearon Nand2Tetris un conjunto de herramientas software para entender ciertos elementos de arquitectura de computadores que precisamente son tratados en el libro y en el curso que ellos dirigen en sus universidades y que nosotros tomamos como uno de las referencias de base. Esta segunda parte de la práctica dos (2), se puede considerar como instalando y reconociendo las principales características de Nand2Tetris, por lo que se busca que responda realizando el proyecto 1: Lógica Booleana: https://www.nand2tetris.org/project01 las preguntas generales dadas en la descripción general, teniendo en cuenta las condiciones generales de entrega de las prácticas explicadas anteriormente.

Para realizar esta práctica debe tener claro y repasar conceptos de lógica booleana previos al curso actual, visto en los cursos anteriores que son requisito para ver esta materia. Es posible que encuentre la respuesta a este proyecto por medios en internet, de ser así, debe mencionar la fuente original, hacer sus propias modificaciones, entender y explicarlo correctamente.

En cada uno de los proyectos que se usan en todas las prácticas relacionadas con Nand2Tetris, encontrarán símbolos que representan, la descripción del proyecto, las diapositivas del curso de los profesores Nisan y Shocken y la fuente bibliográfica de base del libro donde pueden encontrar mas información. Sin embargo, no en todos los casos esta habilitado esa opción porque corresponde a fuentes fundamentales de información que pueden consultarse en otros libros.

Para poder realizar el proyecto, en términos técnicos, deben utilizar el respectivo software disponible en el sitio de Nand2Tetris. Puede descargarlo o trabajarlo en linea.

Preguntas adicionales:

  1. ¿Que consideraciones importantes debe tener en cuenta para trabajar con Nand2Tetris?
  2. ¿Qué otras herramientas similares a Nand2Tetris existen? (De mínimo dos ejemplos)

Recomendación importante: Si bien los grupos pueden COLABORAR entre ellos (NO COPIARSE O PLAGIARSE) para la realización de los proyectos, recuerden que deben ser diferentes. La colaboración les permitirá facilitar el uso de la plataforma, confrontar resultados y realizar discusiones entre los diferentes grupos.

Segunda Práctica: (5 y 12 de Septiembre):

A partir de esta práctica, la dificultad comienza a aumentar un poco. Se debe realizar el proyecto 2 denominado Lógica Aritmética y, que puede encontrar en: https://www.nand2tetris.org/project02 y el proyecto 3, denominado Lógica secuencial, donde se trataran aspectos importantes relacionados con la memoria y se puede encontrar en: https://www.nand2tetris.org/project03

  1. ¿Cuál es el objetivo de cada uno de esos proyectos con sus palabras y describa que debe hacer para desarrollarlo?
  2. Explique las principales diferencias entre la lógica aritmética y la lógica secuencial.

Recomendación Importante: como se mencionó anteriormente en el sitio web creado por ustedes y en el cual van a colocar esta práctica (no olvide identificarlo correctamente), mencione los principales elementos de entrega de la práctica: códigos realizados (bien explicados), resultados relevantes obtenidos y descripción de los mismos.

Bonus: ¿Qué tipo de unidades aritmético lógicas existen?

Tercera Práctica (19 y 26 de Septiembre):

Este laboratorio trata el proyecto 4, relacionado con lenguaje de máquina puede encontrarse en: https://www.nand2tetris.org/project04 y busca atacar posteriormente el proyecto 5: arquitectura computacional, que puede consultarse en: https://www.nand2tetris.org/project05

  1. ¿Por qué el lenguaje de máquina es importante para definir la arquitectura computacional?
  2. ¿Qué diferencia ven entre arquitectura computacional, arquitectura de software y arquitectura del sistema? Justifique su respuesta.

Recomendación Importante: Recuerden las reglas para la publicación en su sitio de informes relacionados con las entregas.

Bonus: Como informático o computista: ¿La arquitectura computacional o la arquitectura del sistema no tiene en cuenta igualmente la arquitectura de software? Justifique su respuesta.

Cuarta Práctica (3 de Octubre)

Este proyecto 6, relacionado con ensamblador encontrarse en: https://www.nand2tetris.org/project06

  1. Teniendo en cuenta las características del ensamblador, ¿Cuál es la principal limitante que observan? Justifique su respuesta.

Bonus: ¿Por qué es tan importante el ensamblador?

Quinta Práctica (10 y 17 de Octubre)

Este laboratorio trata el proyecto 7, relacionado con máquina virtuales y el stack aritmético puede encontrarse en: https://www.nand2tetris.org/project07 y busca atacar el proyecto 8: el control computacional, que puede consultarse en: https://www.nand2tetris.org/project08

  1. Teniendo en cuenta el marco de estas dos prácticas que son las máquinas virtuales. ¿Cuál cree que es el futuro de las máquinas virtuales?
  2. ¿Cual es la principal similitud entre un contenedor y una máquina virtual?

En el sitio web respectivo para esta práctica (no olvide identificarlo correctamente), mencione los principales elementos de entrega de la práctica: códigos realizados (bien explicados), resultados relevantes obtenidos y descripción de los mismos.

Bonus: ¿Cual es la ventaja del contenedor respecto a la máquina virtual?

Sexta Práctica (24 de Octubre)

Este laboratorio trata el proyecto 9, relacionado con lenguaje de alto nivel puede encontrarse en: https://www.nand2tetris.org/project09

  1. Desarrolle más el concepto de lenguaje de alto nivel, teniendo en cuenta la diferencia entre lenguajes de programación propiamente dichos e interpretadores.
  2. ¿Qué lenguajes interpretadores ademas del Python existen?

Bonus: ¿Qué se debe considerar para proponer un nuevo y buen lenguaje de programación, teniendo en cuenta la arquitectura de computador completa? Justifique su respuesta.

Séptima Práctica (31 de octubre)

Este laboratorio trata el proyectos 10 y 11 , relacionados con la compilación: https://www.nand2tetris.org/project10 y https://www.nand2tetris.org/project11

  1. Desarrolle más el concepto de compilación y explique por es tan importante.
  2. De una lista de compiladores que existen y para que lenguajes, organizándolos de mayor uso a menor (tenga en cuenta sin son open source o no y en este ultimo caso, no olvide mencionar el precio del mercado).

Bonus: ¿Como se construye un compilador? Justifique su respuesta.

Octava Práctica (7 de Noviembre)

Este laboratorio trata el proyectos 12 , relacionado el sistema operativo: https://www.nand2tetris.org/project12

  1. Desarrolle más el concepto de compilación y explique por es tan importante.
  2. ¿Que elementos de la arquitectura computacional debe considerarse para proponer la implementación de un sistema operativo?

Bonus: ¿En que lenguaje (o lenguajes) de programación se escriben los sistemas operativos? De ejemplos de su respuesta.

Novena Práctica - INDIVIDUAL ( 14 de Noviembre)

Para esta práctica recuerde que debe enviarla de la misma manera que las anteriores. Cada uno de los miembros del equipo, deben subir su respectivo video al sitio web del grupo (github), en la página respectiva para esta práctica.

Esta práctica de regreso tiene como objetivo responder algunas preguntas claves relacionadas con la ética profesional como ingenieros de sistemas y computistas, de acuerdo al código de ética propuesto por la ACM.

Los valores éticos y morales en las diferentes profesiones son un motivo de discusión, ya que si bien, en algunos casos podrían considerarse principios, en otros de acuerdo al mismo desarrollo tecnológico y social. Precisamente, es por eso que los grupos sociales son los que generan esos códigos de ética, llaménse asociaciones o grupos e interés o de presión. La ACM (www.acm.org) es una asociación fundada en 1947, que reúne precisamente a la comunidad en computación e informática a nivel mundial, en la cual nosotros nos vemos implicados. En el 2018, se propuso un código de ética teniendo en cuenta tanto conducta profesional como principios éticos generales, teniendo en cuenta varios aspectos importantes como son el hecho de la responsabilidad social y humana en el cual los profesionales en computación tienen ante un mundo cambiante, cuyas transformaciones se han dado precisamente por nosotros como computistas. El código de Ética puede consultarse en: https://www.acm.org/code-of-ethics

De manera individual trate y responda cada una de las preguntas. Llegue a conclusiones especificas para cada una de las preguntas siguiendo las indicaciones que se han manejado para la entrega de las prácticas.

  1. ¿Qué opina de los principios éticos generales de la profesión? Argumente de manera concreta su respuesta.
  2. ¿Por que cree que es importante estos principios éticos, hoy en dia, en un contexto en el que la Inteligencia Artificial relativiza la acción humana? Justifique su respuesta.
  3. El punto 2.6, igualmente es algo que genera debate debido a la realidad laboral, ambiciones y necesidades. La responsabilidad profesional en computación (que puede observarse en la sección dos) genera hoy en dia posiciones encontradas en muchos aspectos (por ejemplo, cuando se aspira a contratar "toderos" o a creerse igualmente "que puede hacer de todo", ignorando las competencias y por supuesto subvalorando el conocimiento y niveles de formación (Cómo el conocido caso del ingeniero recién graduado que sepa de todo, varios idiomas y haya tenido años de experiencia , pero con una asignación salarial ridícula o inclusive cuando son contratados en países "en desarrollo", porque salen mas baratos). De la misma manera, existen versiones beta, o fraccionarias consecutivas, que muestran desarrollos parciales, no robustos y que requieren constantes actualizaciones por supuesto, respondiendo a oportunidades de mercado (por el ejemplo el caso de los productos obsoletos o que se vuelven de poco desempeño cuando salé la versión nueva al público) ¿Por qué cree que en el medio colombiano y regional la responsabilidad y las competencias sean subvaloradas? Bonus: Analice un caso conocido y expóngalo para complementar su respuesta.
  4. ¿Pensando en comunidad, piensa que los ingenieros de sistemas UIS se sienten identificados o no con el código propuesto por la ACM? Justifique su respuesta.
  5. ¿Como creen que ustedes pueden trascender e influir en su profesión dentro de cinco (5) años?

Condiciones especiales de entrega:

  • Para la entrega de esta práctica el video debe contener entre (5) siete y (7) minutos.
  • Bonus: Debe promocionar igualmente su video por las redes sociales (por ejemplo, via X o facebook) y lograr por lo menos (5) cinco visitas, con el hashtag #EticaComputacionalACM2024 .


BIBLIOGRAFÍA Y FUENTES DE INFORMACION

1.Patterson and Hennesy, Computer Organization and Design (The Hardware, Software Interface)]

2. Patterson and Hennesy, Computer Architecture; A Quantitative Approach

3. Commer, Douglas, Essentials of Computer Architecture

4. Noam Nisan and  Shimon Schocken. The Elements of Computing Systems, Building a Modern Computer from First Principles

5. TED Talks

6. Algunos enlaces interesantes

HISTORICO DE PROYECTOS PASADOS

En esta sección, hay algunos de los materiales y enlaces de los proyectos de semestres pasados.

PROYECTO FINAL DE CLASE PARA EL SEGUNDO SEMESTRE DEL 2023

Ademas de las consideraciones anteriores, el trabajo final planteado para este semestre es fundamentalmente la evaluación de una solución basada en un sistema computacional, planteada para unos requerimientos funcionales específicos. En todos los casos se les presentará (en real) a cada equipo una arquitectura implementada, los requerimientos que están supliendo, los costos y una documentación de base. Todas las propuestas son ficticias (asi como las empresas que en algunos proyectos se menciona).

Consideraciones Generales:

Estas condiciones generales, son las mínimas a observar, no están en orden y en cada uno de los equipos, debe presentarse en una prioridad de acuerdo al criterio propio.

  • Debe presentar las especificaciones técnicas relevantes que ustedes observen, indicando, por ejemplo, tipo de arquitectura computacional usada que resalte, tipo de computación (si es de propósito general o no), tipo y características de los procesadores, memoria, red, etc.
  • Debe mostrarse las medidas de rendimiento conocidas y relevantes, generalmente dadas por los fabricantes (Bonus: confrontación con datos de medidas de rendimiento dadas por comunidades, universidades, entidades, independientes, etc.)
  • Debe presentarse el precio en el mercado (estimado, no exacto) de la solución presentada (incluyendo fabricante o fabricantes que ofrecen la solución, así como canales de venta).
  • Debe considerarse y presentarse las limitaciones y posibles problemas que presente la solución analizada.
  • Debe evidenciarse las necesidades de Infraestructura y Energía (por ejemplo, espacio, enfriamiento, consumo energético) y personal de administración (conocimientos técnicos).
  • Debe analizarse el ciclo de vida: Extracción, Fabricación, Transporte, Utilización, Fin de Vida)  (Norma ISO 1404)
  • Debe considerarse y mencionarse la solución alternativa no detallada (in situ o en la nube).
  • Deberá mostrarse la Evaluación presentada por ustedes de acuerdo con la siguiente clasificación:
    • Excelente
    • Buena
    • Aceptable
    • Deficiente
    • Mala

Justificando su respuesta.

Proyecto 1 Vehículo Autónomo con NVIDIA Jetson Nano
NVIDIA® Jetson Nano™ Developer Kit es una computadora pequeña y poderosa que le permite ejecutar múltiples redes neuronales en paralelo para aplicaciones como clasificación de imágenes, detección de objetos, segmentación y procesamiento de voz. Todo en una plataforma fácil de usar que funciona con tan solo 5 vatios. El sistema usa  una tarjeta microSD con la imagen del sistema, inicia el kit de desarrollador y usa el mismo SDK NVIDIA JetPack que se utiliza en toda la familia de productos NVIDIA Jetson™. JetPack es compatible con la plataforma de NVIDIA para entrenar e implementar software de IA, lo que reduce la complejidad y el esfuerzo de los desarrolladores.( https://developer.nvidia.com/embedded/jetson-nano-developer-kit).

Localmente, unos estudiantes de ingeniería de sistemas de la UIS han implementado un vehículo autónomo basado en NVIDIA Jetson Nano (https://developer.nvidia.com/blog/nvidia-jetson-project-of-the-month-an-ai-powered-autonomous-miniature-race-car-gets-on-track/)  inspirados en el proyecto Donkey Jetson Car (https://developer.nvidia.com/embedded/community/jetson-projects/donkey_car ) y en el race-car (https://jetsonhacks.com/racecar-j/)

Con esta implementación han propuesto una start-up para entretenimiento y enseñanza usando estos vehículos, para que los estudiantes de últimos cursos de bachillerato en Colombia principalmente y  de carreras diferentes a computación, participen en concursos (https://developer.nvidia.com/embedded/diy-ai-race) y aprenda de manera práctica conceptos de IA, programación y vehículos autónomos.

Un grupo inversor los contrata para evaluar la viabilidad de este tipo de vehículos basada en NVIDIA Jetson Nano.

Recomendación principal: Debe planificar una cita con SC3UIS para ver los carros autónomos y entrevistarse con el responsable de las NVIDIA Jetson Nano Pablo Rojas.

Proyecto 2 Servidor Para Cómputo Científico Pre-Exascale Basado en Super Micro y AMD
SuperMicro ha iniciado un proyecto para soportar necesidades de cómputo pre-Exascale con la Universidad Industrial de Santander, via Supercomputación y Cálculo Científico (SC3UIS) en un proyecto denominado SMExa. Para ello ha puesto un servidor AS-2025HS-TNR, que contiene fundamentalmente (2) dos CPUs x AMD EPYC Genoa 9554 64C/128T 3.1G 256M, 384GB RAM,  (1) una GPU AMD Instinct MI210 64GB, 300 TB de Disco Duro y una red 100Gb. Infiniband. Teniendo en cuenta que los procesadores son AMD (tanto CPUs como GPUs) deben programarse de manera diferente para optimizar su uso, con la utilización ROCm (https://www.amd.com/es/graphics/servers-solutions-rocm ) (https://github.com/RadeonOpenCompute/ROCm) (https://github.com/ROCmSoftwarePlatform) tanto en aplicaciones de HPC tradicionales como simulaciones hasta necesidades de analítica de datos e Inteligencia Artificial.

SC3UIS, los contrata a ustedes de manera independiente para que realicen una evaluación de la plataforma teniendo en cuenta principalmente, que la experticia del equipo de desarrollo es usando procesadores Intel y GPUs provistas por NVIDIA a través del supercomputador GUANE-1 principalmente.

Recomendaciones: Planificar una cita con los responsables de operaciones via [sc3.operaciones@uis.edu.co] (que puede ser virtual), que no debe pasar de una hora. Igualmente si se desea, pueden visitar el sitio, para ello deben planificar una cita con el profesor Carlos Jaime Barrios Hernández.

Proyecto 3 Servidor Para Cómputo Científico Pre-Exascale Basado en DELL y AMD
DELL ha iniciado un proyecto para soportar necesidades de cómputo pre-Exascale con la Universidad Industrial de Santander, via Supercomputación y Cálculo Científico (SC3UIS) en un proyecto denominado ExaDELL. Para ello ha puesto un servidor PowerEdge R7650, con la siguiente información:
DELLEXA.jpg


Además de (1) una GPU AMD Instinct MI210 64GB, 200 TB de Disco Duro y una red 100Gb. Infiniband. Teniendo en cuenta que los procesadores son AMD (tanto CPUs como GPUs) deben programarse de manera diferente para optimizar su uso, con la utilización ROCm (https://www.amd.com/es/graphics/servers-solutions-rocm ) (https://github.com/RadeonOpenCompute/ROCm) (https://github.com/ROCmSoftwarePlatform) tanto en aplicaciones de HPC tradicionales como simulaciones hasta necesidades de analítica de datos e Inteligencia Artificial. Sin embargo existe un particular interés para poder soportar WRF con esta infraestructura (https://www.mmm.ucar.edu/models/wrf)

SC3UIS, los contrata a ustedes de manera independiente para que realicen una evaluación de la plataforma teniendo en cuenta principalmente, que la experticia del equipo de desarrollo es usando procesadores Intel y GPUs provistas por NVIDIA a través del supercomputador GUANE-1 principalmente. Sin embargo, el modelo WRF que se ha ejecutado solo usa CPUs.

Recomendaciones: Planificar una cita con los responsables de operaciones via [sc3.operaciones@uis.edu.co] (que puede ser virtual), que no debe pasar de una hora. Igualmente, si se desea, pueden visitar el sitio, para ello deben planificar una cita con el profesor Carlos Jaime Barrios Hernández.

Proyecto 4 Millicluster para Arquitectura IoT Basada en RasberriPi
Unos estudiantes de ingeniería de sistemas de la UIS, han propuesto un Millicluster basado en Rasberri PI, inspirados en https://www.raspberrypi.com/tutorials/cluster-raspberry-pi-tutorial/ y en https://blog.bricogeek.com/noticias/raspberry-pi/como-hacer-un-cluster-con-raspberry-pi-y-docker/ para necesidades en un sector rural, que quiere integrar esta solución para el manejo de datos de sensores para sus cultivos de mora.

Para su cluster propuesto usan el siguiente hardware:

  • 4x Raspberry Pi 3 Model B — para nodos de cómputo
  • 1x Raspberry Pi 3 Model B — para el nodo master
  • 5x MicroSD Cards
  • 5x micro-USB Cables de Poder
  • 1x 8-port 10/100/1000 network switch
  • 1x 6-port USB power-supply
  • 1x 64GB USB Drive

Según los estudiantes este clúster tiene un costo total de $150 dólares (sin incluir lo que se conoce como humanware).

Una entidad asociada al equipo del ministerio de agricultura quiere invertir en la propuesta y los contrata para evaluar la viabilidad de este tipo de soluciones, es importante confrontar el precio dado y si es realista.

Recomendación principal: Se puede planificar (o no) una cita con SC3UIS para ver un ejemplo en vivo de este tipo de arquitecturas Pablo Rojas.

Proyecto 5 Supercomputador GUANE-1 (Implementado en 2012 y Actualizado en 2016)
GUANE-1 https://es.wikipedia.org/wiki/Guane-1_(supercomputador) ) (https://www.sc3.uis.edu.co/recursoshpc/)   (GpUs Advanced computiNg Environment) que traducido del inglés significa Ambiente de Computo Avanzado de GPUs.) es la infraestructura de referencia de Supercomputación y Cálculo Científico UIS (SC3UIS). Basado principalmente en procesadores NVIDIA FERMI GPUs y procesadores Intel, es una infraestructura que hoy en dia se considera obsoleta a pesar que su vida útil fue extendida de manera asombrosa por el equipo de SC3UIS, soportando aun las necesidades de cómputo de altas prestaciones de los investigadores.

La Universidad Industrial de Santander, plantea renovar la infraestructura de referencia, pero requiere una consultoría independiente para saber que tan obsoleta es la tecnología y por qué debería ser remplazada. Para ello, los contrata a ustedes para recibir su opinión.

Recomendaciones: Planificar una cita con los responsables de operaciones via [[sc3.operaciones@uis.edu.co] ] (que puede ser virtual), que no debe pasar de una hora. Igualmente, si se desea, pueden visitar el sitio, para ello deben planificar una cita con el profesor Carlos Jaime Barrios Hernández.

Proyecto 6 Servidor para Visualización  Avanzada Yajé
Yajé es un proyecto que permite ofrecer una plataforma para explotar Visualización como Servicio (Viz as a Service) para usuarios científicos remotos. Este es un proyecto común, desarrollado con el apoyo de NVIDIA. Actualmente, YAJÉ 2.0, realizado en colaboración igual con NVIDIA, utiliza contenedores y arquitecturalmente se integra con GUANE1R  y  se usa tecnología  NVIDIA GeForce GTX Titan.  En general, YAJÉ permite explotar el modelo de Viz as a Service, integrándose con plataformas HPC, dirigido a necesidades de interacción y visualización remota, aprovechándose de la flexibilidad del uso de contenedores, involucrando componentes hardware y software. ((https://www.sc3.uis.edu.co/recursoshpc/)  Los componentes principales son:

·       Manufacturadorr: HPE

·       Nombre del Producto: ProLiant ML350 Gen9

·       Procesador:  1 Intel(R) Xeon(R) CPU E5-2609 v3 @ 1.90GHz – 6 Cores

·       Memoria Total:   49031292 kB – 48GB

·       GPU:     1 NVIDIA GeForce GTX Titan X 12 GB

La Escuela de Trabajo Social, dentro de su área de Humanidades Digitales, analiza el uso de Yajé para los proyectos del Colaboratorio de Visualización en Inmersión Avanzada. Para ellos los contrata a ustedes para analizar si Yajé puede soportar las necesidades básicas de las actividades de visualización como servicio (remoto) y que debería tenerse en cuenta si se quiere actualizar.

Recomendaciones: Planificar una cita con los responsables de operaciones via [[sc3.operaciones@uis.edu.co] ] (que puede ser virtual), que no debe pasar de una hora. Igualmente, si se desea, pueden visitar el sitio, para ello deben planificar una cita con el profesor Carlos Jaime Barrios Hernández.

Proyecto 7 Servidor para Cómputo Avanzado FELIX
FELIX es una plataforma propuesta por el equipo de SC3UIS, para soportar el alto rendimiento en aplicaciones de Inteligencia Artificial, principalmente aquellas que requieran ambientes de ejecución híbridos o basados en TPUs.

Técnicamente, tiene el siguiente hardware:

  • Manufacturer: HP
  • Product Name: ProLiant DL580 G7
  • Processor: 4 Intel(R) Xeon(R) CPU X7560 @ 2.27GHz – 64 Cores
  • MemTotal: 131844368 kB – 128GB
  • Devices: 2 NVIDIA GeForce GTX Titan X 12 GB

La Escuela de Historía, plantea usar FELIX para correr ciertas herramientas basadas en TensorFlow, pero requiere una consultoría independiente para saber que tan buena es la tecnología. Para ello, los contrata a ustedes para recibir su opinión.

Recomendaciones: Planificar una cita con los responsables de operaciones via [[sc3.operaciones@uis.edu.co] ] (que puede ser virtual), que no debe pasar de una hora. Igualmente, si se desea, pueden visitar el sitio, para ello deben planificar una cita con el profesor Carlos Jaime Barrios Hernández.

Proyecto 8 Computador Cuántico UIS
Un profesor de la Escuela de Física, afirma que debe comprarse un computador cuántico en la Universidad Industrial de Santander, como aquellos que vende la compañía D-WAVE (https://www.dwavesys.com/) . Y pone como ejemplo el Computador cuántico que se encuentra en el centro de supercomputación de Julich en Alemania (https://juelich-quantum.de/en/) o de la Universidad de Waterloo en Canada (https://uwaterloo.ca/institute-for-quantum-computing/events/quantum-computing-d-wave-processor)

El profesor afirma que el costo del equipo es de solo USD 2.000.000 (Dos millones de doláres) teniendo en cuenta las adecuaciones, por lo que la Universidad Industrial de Santander los contrata como consultores independientes, para analizar la propuesta con la información dada, teniendo en cuenta el mínimo computador cuántico comprable a D-WAVE y sobre todo, si la información del costo dado por el profesor es realista.

Recomendaciones: Además de consultar referencias, los sitios web  de la compañía y los institutos dados, planificar una cita (que puede ser virtual) con el profesor Gilberto Diaz ([gjdiazt@uis.edu.co]) con copia visible con el profesor de la asignatura.

Proyecto 9 Cluster para Apoyo Académico EISI
La Escuela de ingeniería de Sistemas e Informática (EISI) ha implementado un cluster para soporte académico para todos los cursos que requieran dicha plataforma.

El Centro de Estudios de Ingeniería de Sistemas les solicita a ustedes conocer y divulgar tanto las características técnicas como ventajas tecnológicas y funcionamiento de dicha plataforma adquirida.

Recomendaciones: Planificar una cita con los responsables de técnicos vía [jrpernam@uis.edu.co] (con copia visible al profesor del curso),  que no debe pasar de una hora. Y pueden realizar una visitar el sitio, con presencia del profesor Carlos Jaime Barrios Hernández, de ser necesario.


Sitios web seleccionados de los equipos pasados

Asignaciones y Temáticas de Proyectos (2 Semestre 2021)

Estas asignaciones corresponden a los mismos grupos generados para las prácticas.

El proyecto es planteado en las mismas condiciones que el proyecto del semestre pasado teniendo en cuenta el alcance del curso, llevándolo mas hacia una actividad de recomendación tecnológica y conocimientos como ingenieros, que hacia una actividad científica/académica. Cada uno de los grupos tendrá un reto a realizar en el cual siguiendo las consideraciones generales que se darán a continuación deberán apoyar la toma de decisiones de acuerdo a lo solicitado.


Consideraciones Generales:

  • Debe presentar las especificaciones técnicas relevantes, indicando por ejemplo, tipo de arquitectura computacional usada que resalte, tipo de computación (si es de propósito general o no), tipo y características de los procesadores, memoria, red, etc.
  • Medidas de rendimiento conocidas y relevantes, generalmente dadas por los fabricantes (Bonus: confrontación con datos de medidas de rendimiento dadas por comunidades, universidades, entidades, independientes, etc.)
  • Precio en el mercado (estimado, no exacto) de la solución presentada (incluyendo fabricante o fabricantes que ofrecen la solución asi como canales de venta).
  • Limitaciones y posibles problemas que presente la solución recomendada.
  • Necesidades de Infraestructura y Energía (por ejemplo, espacio, enfriamiento, consumo energético) y personal de administración (conocimientos técnicos).
  • Solución alternativa no detallada (in situ o en la nube).
  • JUSTIFICAR MUY BIEN SU ELECCION.



Equipo 1

Una empresa pequeña, tipo Spin Off universitaria busca tratar problemas diversos en Inteligencia Artificial para salud, para lo cual los contrata a ustedes como equipo de consultores, para adquirir una solución tecnológica in-situ que permita probar diversos tipos de algoritmos usando ambientes de desarrollo y ejecución conocidos (Pytorch, TensorFlow, etc.), normalmente sobre el sistema operativo linux y compiladores Open Source. Dicha plataforma debe poder ser accesada por red via Internet y redes privadas específicas (como la Red Académica RENATA), para un número de 10 usuarios simultáneos posibles. Se espera que los algoritmos , desarrollados asi como las aplicaciones manejen una escala mediana de datos y procesos. No es una plataforma de producción, sino de prueba, entrenamiento y despliegue, como se mencionó, de mediana escala. La plataforma deberá enlazarse con una plataforma de almacenamiento dedicado que ya contiene la empresa tipo SAN de 250 TB con puertos de interconexión estándar que se encuentran en el mercado (fibra óptica, Infiniband) y el switch respectivo, que igual la empresa ya tiene. El presupuesto esta limitado a USD 150.000.oo (Ciento cincuenta mil dólares) que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.).

ARCHILA ANAYA BRANDON ARLEY
CARDENAS PARADA JORGE ANDRES
CARVAJAL SANABRIA JAVIER FERNANDO
CASTELLANOS GELVEZ DANIEL FELIPE


Equipo 2

Una empresa mediana, tipo Spin Off universitaria busca desarrollar video juegos tipo VR, para lo cual los contrata como equipo de consultores, para adquirir una solución tecnológica in-situ que permita probar diversos tipos de juegos usando que han sido programados en diferentes ambientes de desarrollo y ejecución conocidos (MyArmy, Unity, etc), normalmente sobre diferentes sistemas operativos y compiladores tanto Open Source como propietario. Estos juegos posteriormente serán ofertados para jugar en linea en la nube. Dicha plataforma debe poder ser accesada por red via Internet, para 100 usuarios probadores (Game Testers) en promedio, pero igual se espera que ustedes sugieran al menos dos máscaras o cascos de soporte VR. El switch respectivo para acceder asi como el servidor frontend ya lo tiene la empresa con puertos de alta capacidad y baja latencia. Se espera que los juegos desarrollados, como se mencionó anteriormente son juegos que se ofrecerán en la nube, de alta gama (tanto gráfica como de sonido, no gama media o baja). La plataforma deberá enlazarse con una plataforma de almacenamiento dedicado que ya contiene la empresa tipo SAN de 150 TB con puertos de interconexión estándar que se encuentran en el mercado (fibra óptica, Infiniband) y el switch respectivo, que igual la empresa ya tiene. El presupuesto esta limitado a USD 350.000.oo (trescientos cincuenta mil dólares) que incluiría igual un par de cascos/máscaras de soporte VR, tanto impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.).

DUARTE RUEDA JUAN ESTEBAN
FLOREZ ACOSTA TATIANA MARCELA
GALLO FRANCO DAVID MAURICIO
GALVIS BERGSNEIDER VALENTINA
GUALDRON HURTADO YESID ROMARIO

Equipo 3

Una empresa mediana, tipo Spin Off universitaria busca desarrollar aplicaciones para ciberseguridad, para lo cual los contrata como equipo de consultores, para adquirir una solución tecnológica in-situ que permita probar diversos tipos de aplicaciones que son enfocadas a reuniones en línea. Estas han sido construidas usando diferentes lenguajes de programación, ambientes de desarrollo y ejecución conocidos, normalmente sobre diferentes sistemas operativos y compiladores tanto Open Source como propietario. Dicha plataforma debe poder ser accesada por red via Internet, para un máximo de 100 usuarios, normalmente emulados por otra plataforma con relativa intervención humana. El switch respectivo para acceder, asi como el servidor frontend y otros dispositivos necesarios de seguridad no lo tiene la empresa, por lo que igual debe sugerirse y listarse cuales deben ser esos equipos y sus principales características. La plataforma deberá enlazarse con una plataforma de almacenamiento dedicado que ya esta en la empresa tipo SAN de 250 TB con puertos de interconexión estándar que se encuentran en el mercado (fibra óptica, Infiniband) y el switch respectivo, que igual la ya se tiene. El presupuesto esta limitado a USD 250.000.oo (Doscientos cincuenta mil dólares) que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.). Muy importante considerar el costo de acceso a internet comercial (para uso efectivamente empresarial, no en el hogar).

IBARRA RUEDA YERSON STEWELL
LEON ORTIZ DANIEL ALEJANDRO
LOPEZ SANTANA YAIRE CATALINA
PEREIRA MILLAN CAMILO JOSE
QUINTERO PINTO BRAYAN ANDRES


Equipo 4

Una empresa mediana, tipo Spin Off universitaria busca desarrollar aplicaciones para simulación en la industria energética y medioambiental, para lo cual los contrata como equipo de consultores, para adquirir una solución tecnológica in-situ que permita desarrollar sus aplicaciones. La solución puede ser un sistema centralizado o sistemas de trabajo individuales, en los cuales desarrollarían 3 personas y accederían a través de pc's personales o tabletas que ya se tienen. Las aplicaciones han sido construídas usando diferentes lenguajes de programación, compiladores, ambientes de desarrollo y ejecución conocidos, dirigido al sistema operativo linux y todo bajo una política de Open Source. Las aplicaciones son colaborativas y normalmente estas aplicaciones se ejecutarán en sistemas de computación de alto rendimiento (HPC) que contienen diferentes tipos de procesadores (CPUs, TPUs, GPUs, XPUs). Dicha solución deberá poder conectarse via una red privada, a un servidor de acceso donde se almacenan las aplicaciones y desarrollos que ya tiene la empresa y por supuesto a Internet a través de una red pública. El switch respectivo para acceder a ese servidor ya lo tiene la empresa así como el sistema de almacenamiento. Las características de ese servidor, como del switch y el sistema de almacenamiento son desconocidas. El presupuesto esta limitado a USD 200.000.oo (Doscientos mil dólares) que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.).

RAMIREZ VELA JUAN PABLO
VALENZUELA PARDO ANDRES FELIPE
VASQUEZ VIVAS DAVID ALEXANDER
VILLAMIZAR PEÑARANDA JHORDANTH FABIAN


Equipo 5

Una empresa mediana colombiana, desarrolla aplicaciones para ciberseguridad, para lo cual los contrata como equipo de consultores, para adquirir una solución tecnológica in-situ que permita ejecutar diversos tipos de aplicaciones que son enfocadas a transacciones comerciales en linea y servicios financieros, incluyendo bitcoin. Estas han sido construidas usando diferentes lenguajes de programación, ambientes de desarrollo y ejecución conocidos, normalmente sobre diferentes sistemas operativos y compiladores tanto Open Source como propietario. Dicha plataforma debe poder ser accesada por red via Internet, para un promedio de 5000 usuarios simultáneos. El switch respectivo para acceder, asi como el servidor frontend y otros dispositivos necesarios de seguridad no lo tiene la empresa, por lo que igual debe sugerirse y listarse cuales deben ser esos equipos y sus principales características. La plataforma deberá enlazarse con una plataforma de almacenamiento dedicado que ya esta en la empresa tipo SAN de 1.3 PB con puertos de interconexión estándar que se encuentran en el mercado (fibra óptica, Infiniband) y el switch respectivo, que igual ya se tiene. El presupuesto esta limitado a USD 950.000.oo (Novecientos cincuenta mil dólares) que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.). Notas importantes: 1. Se busca que garantice un consumo de potencia eléctrica bajo. 2. Los ingenieros de planta han analizado las DPUs, por lo que se solicita ver soluciones con dicho tipo de componentes. 3. Tener en cuenta una plataforma de resiliencia en caso de ataque.

ARIZA BRICEÑO SANTIAGO
ATEHORTUA DUQUE JUAN DIEGO
BAYONA QUESADA JUAN CAMILO
CARDENAS VELASQUEZ IVAN DARIO

Equipo 6

El organismo encargado de la predicción climática, busca ubicar en Colombia una empresa que desarrolle aplicaciones que le permita pronosticar el clima en los aeropuertos, usando principalmente WRF. Buscando solventar sus necesidades, los contrata a ustedes como equipo de consultores, para adquirir una solución tecnológica in-situ que permita ejecutar diversos tipos de códigos basados en WRF. Estos han sido construidos usando principalmente C/C++ y. Fortran, bajo ambientes de desarrollo y ejecución conocidos, normalmente sobre Linux y compiladores tanto Open Source como propietario. Dicha plataforma debe poder ser accesada por red via Internet, para un promedio de 5 usuarios simultáneos, pero lo mas importante es que permita escalar lo máximo posible los procesos, de tal manera que pueda tener los diferentes resultados de sus códigos en máximo dos horas. El switch respectivo para acceder, asi como el servidor frontend y otros dispositivos necesarios de seguridad los tiene ya el organismo. La plataforma deberá enlazarse con una plataforma de almacenamiento dedicado tipo SAN de 0.5 PB con puertos de interconexión estándar que se encuentran en el mercado (fibra óptica, Infiniband) y el switch respectivo, que igual ya se tiene. El presupuesto esta limitado a USD 350.000.oo (Doscientos cincuenta mil dólares) que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.). Notas importantes: 1. Se busca que garantice un consumo de potencia eléctrica bajo. 2. Los códigos de WRF que se tienen, están principalmente dirigidos al uso de CPUs. 3. Igualmente se espera una recomendación de compiladores a usar. 4. No olvide ver soluciones similares en otros paises vecinos, principalmente en Ecuador y Brasil.

CARRILLO TELLEZ JOSE ALEJANDRO
CETINA BERDUGO JUAN CAMILO
ESTEVEZ RUIZ GIANFRANCO
JAIMES BENITEZ ESNEYDITH PATRICIA

Equipo 7

Una empresa pequeña, tipo Spin Off universitaria desarrolla aplicaciones para servicios satélites aerospaciales que se utilizarán principalmente para identificación en imagenes satélitales. Para ello quiere adquirir una serie de plataformas de prueba embebidas, tanto con sistemas CPUs ARM o GPUs que garantice bajo consumo energético principalmente, administración remota via internet y buenas capacidades de procesamiento. Las aplicaciones han sido construidas usando diferentes lenguajes de programación (C/C++, CUDA, JAVA), directivas(OpenACC, Matlab) e interpretadores (como Python, R), compiladores, ambientes de desarrollo y ejecución conocidos, dirigido al sistema operativo linux y todo bajo una política de Open Source. El presupuesto esta limitado a USD 15.000.oo (quince mil dólares) que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.). Notas importantes: 1. Cantidad de posibles elementos de la solución (número de dispositivos embebidos). 2. Soporte de alto rendimiento (HPC) embebido (o HPC@Pocket). 3. Se pesera al menos poder adquirir dos plataformas de tecnologías y fabricantes diferentes.


LEAL MANOSALVA JOSE ISAAC
MEDINA ORTEGA DIEGO ARMANDO
MOSQUERA NIÑO NEYDER FABIAN
RODRIGUEZ SANCHEZ JEAN CARLO
TORRES QUINTERO JAVIER ANDRES

Equipo 8

Una empresa pequeña, tipo Spin Off universitaria desarrolla aplicaciones para servicios IoT a nivel Edge en campos agricolas en montaña, como cúltivos de café o cacao. Se espera que principalmente estas plataformas involucren captura de datos por sensores que ya tiene la empresa. Para ello quiere adquirir una serie de plataformas de prueba embebidas, tanto con sistemas CPUs ARM como GPUs que garantice bajo consumo energético principalmente, administración remota via internet y buenas capacidades de procesamiento. Las aplicaciones han sido construidas usando diferentes lenguajes de programación (C/C++, CUDA, JAVA), directivas(OpenACC, Matlab) e interpretadores (como Python, R), compiladores, ambientes de desarrollo y ejecución conocidos, dirigido al sistema operativo linux y todo bajo una política de Open Source. El presupuesto esta limitado a USD 25.000.oo (Veinicinco mil dólares) que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.). Notas importantes: 1. Cantidad (mayor) de posibles elementos de la solución (número de dispositivos embebidos). 2. Soporte de alto rendimiento (HPC) embebido (o HPC@Pocket). 3. Se busca que sean de una sola tecnología y fabricante.

TRUJILLO TIERRADENTRO JUAN SEBASTIAN
UTIMA ECHEVERRY RUBI TATIANA
VARGAS MARTINEZ DUVAN FERNEY
VILLAMIZAR VERA ADRIANA
ZAMBRANO PINILLA YOUSSEF SAID

Equipo 9

Una empresa pequeña, tipo Spin Off universitaria desarrolla aplicaciones para servicios de visualización científica, que principalmente involucran simulaciones para las empresas de construcción en un muro de visualización. Para ello, la empresa quiere adquirir una solución que permita visualizar en un sistema de visualización inmersiva (tipo CAVE) y un muro de visualización que ya tienen la empresa. Las aplicaciones han sido construidas usando diferentes lenguajes de programación (C/C++, CUDA, JAVA), directivas(OpenACC, OpenCL, Matlab), librerias (OpenGL, OpenCV) e interpretadores (como Python, R), compiladores, ambientes de desarrollo y ejecución conocidos, dirigido al sistema operativo linux y todo bajo una política de Open Source. El presupuesto esta limitado a USD 200.000.oo (Doscientos mil dólares) que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.). Notas importantes: 1. La solución estará conectada igualmente a una red privada ya la Red Académica. 2. Soporte de alto rendimiento (HPC) y paralelismo. 3. Altísima calidad en gráficos pero debe soportar la ejecución de aplicaciones en CUDA.

BARBOSA VARGAS AMIN ESTEBAN
BONILLA GONZALEZ FABIAN ANDRES
CIRO OROZCO CAMILO
DIAZ MARTINEZ LEIDER EDUARDO
PRENSS CASTRO JUAN JOSE

Equipo 10

La Escuela de Ingeniería de Sistemas e Informática, desea desarrollar un laboratorio que permita la prueba de aplicaciones dirigidas a vehículos autónomos a diferentes escalas (desde vehículos tipo JetBots hasta carros autónomos o aviones). Para ello quiere adquirir una serie de plataformas de prueba embebidas, tanto con sistemas CPUs ARM como GPUs que garantice bajo consumo energético principalmente, administración remota via internet (WiFi) y buenas capacidades de procesamiento. Las aplicaciones han sido construidas usando diferentes lenguajes de programación (C/C++, OpenCL, CUDA, JAVA), directivas(OpenACC, Ompss, Matlab) e interpretadores (como Python, R), compiladores, ambientes de desarrollo y ejecución conocidos, dirigido al sistema operativo linux y todo bajo una política de Open Source. El presupuesto esta limitado a USD 50.000.oo (Cincuenta mil dólares) que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, alimentación, etc.). Notas importantes: 1. Cantidad de posibles elementos de la solución (número de dispositivos embebidos). 2. Soporte de alto rendimiento (HPC) embebido (o HPC@Pocket). 3. Diversidad. 4. Obsolescencia prevista (o más bien permanencia)

ESTEBAN PARRA JUAN DIEGO
FUENTES DUARTE CRISTIAN DAVID
JAIMES BLANCO DANIEL FELIPE
MEDINA REATIGA IVETH ADRIANA
NAVARRO MOTTA JOSE FREDY


Equipo 11

La Escuela de Ingeniería de Sistemas e Informática, decide fortalecer sus competencias en ciberseguridad, para lo cual los contrata como equipo de consultores, para adquirir una solución tecnológica in-situ que permita simular y emular tanto ataques, como problemas y situaciones relacionados con seguridad. La solución deberá permitir evaluar y desplegar diferentes tipos de soluciones y estrategias, que por ejemplo han sido construidas usando diferentes lenguajes de programación, ambientes de desarrollo y ejecución conocidos, normalmente sobre diferentes sistemas operativos y compiladores tanto Open Source como propietario. Dicha plataforma debe poder ser accesada por red via Internet, para un promedio de 30 usuarios simultáneos. El switch respectivo para acceder, asi como el servidor frontend (y otros necesarios, como firewalls, UDPs) y otros dispositivos necesarios de seguridad no los tiene la escuela, por lo que igual debe sugerirse y listarse cuales deben ser esos equipos y sus principales características. La plataforma deberá enlazarse con una plataforma de almacenamiento dedicado que no lo tiene la escuela y que igual debe sugerirse para dicho laboratorio de cibereguridad. Ese almacenamiento debe ser tipo SAN de mínimo 200 TB, que soporte diversos sistemas de archivos (constantemente se configurara y formateara) con puertos de interconexión estándar que se encuentran en el mercado (fibra óptica, Infiniband) y el switch respectivo, no se tien tampoco e igual debe recomendarse. El presupuesto esta limitado a USD 250.000.oo (Doscientos cincuenta mil dólares) para TODA la solución, que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.). Notas importantes: 1. Se busca un uso académico y de laboratorio. 2. Debe contemplarse la diversidad de procesadores y soluciones posibles (CPUs, GPUs, DPUs, FPGAs, XPUs). 3. Si el presupuesto es insuficiente, explicar por qué (pero no olvidar que debe darse una propuesta con el presupuesto dado).

RAMIREZ DIAZ CARLOS IVAN
RIVERO CANTILLO DAVID RICARDO
ROA PRADA MANUEL VICENZY

Equipo 12

La Escuela de Ingeniería de Sistemas e Informática, decide fortalecer sus competencias en sistemas de gran escala y big data, para lo cual los contrata como equipo de consultores, para adquirir una solución tecnológica in-situ que permita experimentar con soluciones que posteriormente podrían colocarse en la nube. La solución deberá permitir evaluar y desplegar diferentes tipos de soluciones y estrategias, que por ejemplo han sido construidas usando diferentes lenguajes de programación, ambientes de desarrollo y ejecución conocidos, normalmente sobre diferentes sistemas operativos y compiladores tanto Open Source como propietario. Dicha plataforma debe poder ser accesada por red via Internet, para un promedio de 20 usuarios simultáneos. El switch respectivo para acceder, asi como el servidor frontend y otros dispositivos necesarios de seguridad no los tiene la escuela, por lo que igual debe sugerirse y listarse cuales deben ser esos equipos y sus principales características. La plataforma deberá enlazarse con una plataforma de almacenamiento dedicado que no lo tiene la escuela y que igual debe sugerirse para dicho laboratorio de Big Data. Ese almacenamiento debe ser tipo SAN de mínimo 150 TB, que soporte diversos sistemas de archivos (constantemente se configurara y formateara), principalmente Lustre con puertos de interconexión estándar que se encuentran en el mercado (fibra óptica, Infiniband) y el switch respectivo, no se tiene e igual debe recomendarse. El presupuesto esta limitado a USD 150.000.oo (Ciento cincuenta mil dólares) para TODA la solución, que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.). Notas importantes: 1. Se busca un uso académico y de laboratorio. 2. Debe contemplarse la diversidad de procesadores y soluciones posibles (CPUs, GPUs, DPUs, FPGAs, XPUs). 3. Si el presupuesto es insuficiente, explicar por qué (pero no olvidar que debe darse una propuesta con el presupuesto dado).

SOLER MALDONADO YURIETH NAJHERY
TARAZONA MONCADA NICOLAS
URREGO PAREDES ANDREA JULIANA
VILLAMIZAR SANCHEZ ALVARO JAVIER


Asignaciones y Temáticas de Proyectos de Semestres Pasados

Asignaciones y Temáticas de Proyectos (2 Semestre de 2020)

Las temáticas de los proyectos finales se darán en la segunda semana de noviembre de 2020. Las asignaciones de los grupos (que son los mismos para las prácticas son:

Grupo 1: Evaluación de Rendimiento: HPL

ANAYA MERCHAN MARIO ANDRES
ARIAS GOMEZ ANGIE NATALIA
CADENA PINILLA SAMUEL YESID
CLARO PEREZ JUAN PABLO
DIAZ GUTIERREZ JUAN SEBASTIAN


El listado de las 500 máquinas computacionales denominado Top500 se presenta cada seis meses, convirtiéndose en la competencia mas importante y prestigiosa para todos los fabricantes e integrados a nivel mundial. Uno de los benchmark utilizados es el HPL diseñado para conocer precisamente las velocidades y capacidades de una infraestructura computacional. Para realizar el trabajo debe responder fundamentalmente estas preguntas:

  1. ¿De que se trata el HPL?
  2. ¿Cuales son sus limitaciones?
  3. Descargue y ejecute el HPL en una máquina personal (preferiblemente sobre linux) y solicite apoyo para que pueda ser ejecutado en uno o dos nodos de cómputo de GUANE-1 de SC3UIS (Esto si es exclusivamente linux). Nota: ademas del enlace dado para el HPL: https://www.netlib.org/benchmark/hpl/ existe otros posibles para PCs tanto con linux como con MacOs o Windows. Si decide hacerlo con Mac Os o Windows, explique el impacto en los resultados posibles.
    1. Muestre y explique los resultados en cada una de las máquinas (No olvide describir las especificaciones de sistema. (Hardware, Software de Sistema)).
    2. Compare los resultados del HPL obtenidos con la máquina número uno del listado de noviembre de 2020 del Top500 y discuta al respecto.
    3. Si Colombia quisiera colocar una máquina dentro de las 10 primeras del Top500 de Junio de 2021, teniendo en cuenta únicamente el HPL, que ¿características arquitecturales y especificaciones de sistema debería tener y que resultados mínimos obtener? Nota: Observe la evolución histórica Noviembre 2019, Junio 2020, Noviembre 2020.


Grupo 2: Evaluación de Rendimiento: HPCG

ESCOBAR BUENO VALENTINA
ESTUPIÑAN COBOS JUAN SEBASTIAN
FLOREZ BACCA MATEO
GARCIA DUARTE JULIAN ESTEBAN
JIMENEZ GOMEZ JUAN PABLO


El listado de las 500 máquinas computacionales denominado Top500 se presenta cada seis meses, convirtiéndose en la competencia mas importante y prestigiosa para todos los fabricantes e integrados a nivel mundial. Uno de los benchmark utilizados es el HPCG diseñado para conocer precisamente las velocidades y capacidades de una infraestructura computacionales teniendo en cuenta otros aspectos que no tenia en cuenta el HPL. Para realizar el trabajo debe responder fundamentalmente estas preguntas:

  1. ¿De que se trata el HPCG y en que se diferencia del HPL?
  2. ¿Cuales son sus limitaciones?
  3. Descargue y ejecute el HCG en una máquina personal (preferiblemente sobre linux) y solicite apoyo para que pueda ser ejecutado en uno o dos nodos de cómputo de GUANE-1 de SC3UIS (Esto si es exclusivamente linux). Nota: ademas del enlace dado para el https://www.hpcg-benchmark.org/ existe otros posibles para PCs tanto con linux como con MacOs o Windows. Si decide hacerlo con Mac Os o Windows, explique el impacto en los resultados posibles.
    1. Muestre y explique los resultados en cada una de las máquinas (No olvide describir las especificaciones de sistema. (Hardware, Software de Sistema)).
    2. Compare los resultados del HPCG obtenidos con la máquina número uno del listado de noviembre de 2020 del Top500 en el HPCG y discuta al respecto.
    3. Si Colombia quisiera colocar una máquina dentro de las 10 primeras del Top500 de Junio de 2021, teniendo en cuenta únicamente el HPCG, que ¿características arquitecturales y especificaciones de sistema debería tener y qué resultados mínimos obtener? Nota: Observe la evolución histórica Noviembre 2019, Junio 2020, Noviembre 2020.


Grupo 3: Evaluación de Rendimiento: Green500

LIZCANO CASTRO JESUS DANIEL
MARIN GARCIA JUAN CAMILO
MONROY CHAPARRO BRAYAN ESNEIDER
NUÑEZ CASTELLANOS JHON STEWAR
PERTUZ MANOSALVA JUAN CAMILO


El listado de las 500 máquinas computacionales denominado Top500 se presenta cada seis meses, convirtiéndose en la competencia mas importante y prestigiosa para todos los fabricantes e integrados a nivel mundial. Uno de los comportamientos mas importantes hoy en dia tiene que ver con la eficiencia energética, lo cual derivo precisamente en una metodología con un listado asociado que se denomina Green500 . Para realizar el trabajo debe responder fundamentalmente estas preguntas:

  1. ¿De que se trata el Green5000 y en que se diferencia del HPL?
  2. ¿Cuales son sus limitaciones?
  3. Descargue y ejecute en una máquina personal (preferiblemente sobre linux) cualquier benchmark libre (no pago) para conocer precisamente la eficiencia energética (por ejemplo, el SPEC_power, DVFS u otro y solicite apoyo para que pueda ser ejecutado en uno o dos nodos de cómputo de GUANE-1 de SC3UIS (Esto si es exclusivamente linux). Nota: Para PC's existen varias apps como las que puede ver en: https://asapguide.com/best-temperature-monitor-app/ otros posibles para PCs tanto con linux como con MacOs o Windows. Si decide hacerlo con Mac Os o Windows, explique el impacto en los resultados posibles. Igualmente puede observar aplicaciones como en: https://www.maeep.org/doetools
    1. Muestre y explique los resultados en cada una de las máquinas (No olvide describir las especificaciones de sistema. (Hardware, Software de Sistema)).
    2. Compare los resultados de obtenidos con la máquina número uno del listado de noviembre de 2020 del Green500 y discuta al respecto.
    3. Si Colombia quisiera colocar una máquina dentro de las 10 primeras del Top500 de Junio de 2021, teniendo en cuenta únicamente el Green500, que ¿características arquitecturales y especificaciones de sistema debería tener y qué resultados mínimos obtener? Nota: Observe la evolución histórica Noviembre 2019, Junio 2020, Noviembre 2020.


Grupo 4: Evaluación de Rendimiento: UNIGINE

QUEZADA SANCHEZ EFRAIN CAMILO
RAMIREZ CONTRERAS JHON ANDERSON
RIVERA GONZALEZ BRAJHAN JAVIER
RIVERA LEON SEBASTIAN
ROJAS CASTRO HERNANDO JOSE


La comunidad de "GAMERS" han desarrollado evaluaciones de rendimiento para las GPUs, buscando hacer comparaciones importantes sobre el rendimiento y características de las mismas, en términos de capacidades y aceleración. Una de las mas conocidas es UNIGINE Para realizar el trabajo debe responder fundamentalmente estas preguntas:

  1. ¿De que se trata el conjunto de Benchmarks?
  2. ¿Cuales son sus limitaciones?
  3. Descargue y ejecute en una máquina personal el benchmark https://benchmark.unigine.com/ para conocer precisamente ese rendimiento. Solicite apoyo para ser ejecutado sobre YAJE de SC3UIS que soporta el benchmark. Nota: Para PC's existen varias otras aplicaciones de comparación otros posibles para PCs tanto con linux como con MacOs o Windows. Si decide hacerlo con Mac Os o Windows o linux, explique el impacto en los resultados posibles.
    1. Muestre y explique los resultados en cada una de las máquinas (No olvide describir las especificaciones de sistema. (Hardware, Software de Sistema)).
    2. Compare los resultados de obtenidos con las dos primeras arquitecturas mostradas en el sitio y discuta al respecto.
    3. Si usted quisiera colocar una máquina dentro de las 10 primeras de ese listado, explique que características debería tener.


Grupo 5: Evaluación de Rendimiento: HPL - Beta

SERRANO LOZADA CAMILO ERNESTO
VALLEJO VALLEJO DAIRON ALEXIS
BLANCO RODRIGUEZ GEISON ALFREDO
CAMACHO HOLGUIN HORACIO ANTONIO
CAMACHO TORRES JULIAN CAMILO


El listado de las 500 máquinas computacionales denominado Top500 se presenta cada seis meses, convirtiéndose en la competencia mas importante y prestigiosa para todos los fabricantes e integrados a nivel mundial. Uno de los benchmark utilizados es el HPL diseñado para conocer precisamente las velocidades y capacidades de una infraestructura computacional. Para realizar el trabajo debe responder fundamentalmente estas preguntas:

  1. ¿De que se trata el HPL?
  2. ¿Cuales son sus limitaciones?
  3. Descargue y ejecute el HPL en una máquina personal (preferiblemente sobre linux) y solicite apoyo para que pueda ser ejecutado en FELIX de SC3UIS (Esto si es exclusivamente linux). Nota: ademas del enlace dado para el HPL: https://www.netlib.org/benchmark/hpl/ existe otros posibles para PCs tanto con linux como con MacOs o Windows. Si decide hacerlo con Mac Os o Windows, explique el impacto en los resultados posibles.
    1. Muestre y explique los resultados en cada una de las máquinas (No olvide describir las especificaciones de sistema. (Hardware, Software de Sistema)).
    2. Compare los resultados del HPL obtenidos con la máquina número uno del listado de noviembre de 2020 del Top500 y discuta al respecto.
    3. Si Colombia quisiera colocar una máquina dentro de las 10 primeras del Top500 de Junio de 2021, teniendo en cuenta únicamente el HPL, que ¿características arquitecturales y especificaciones de sistema debería tener y que resultados mínimos obtener? Nota: Observe la evolución histórica Noviembre 2019, Junio 2020, Noviembre 2020.


Grupo 6: Evaluación de Rendimiento: HPCG - Beta

CERA BUSTAMANTE ANDRES FELIPE
GONZALEZ SALVADOR JUAN SEBASTIAN
JAIMES ALQUICHIRE ANDREA SOFIA
JAIMES ANTOLINEZ LAURA NATALIA
JAIMES MANTILLA EINER STEVEN

El listado de las 500 máquinas computacionales denominado Top500 se presenta cada seis meses, convirtiéndose en la competencia mas importante y prestigiosa para todos los fabricantes e integrados a nivel mundial. Uno de los benchmark utilizados es el HPCG diseñado para conocer precisamente las velocidades y capacidades de una infraestructura computacionales teniendo en cuenta otros aspectos que no tenia en cuenta el HPL. Para realizar el trabajo debe responder fundamentalmente estas preguntas:

  1. ¿De que se trata el HPCG y en que se diferencia del HPL?
  2. ¿Cuales son sus limitaciones?
  3. Descargue y ejecute el HCG en una máquina personal (preferiblemente sobre linux) y solicite apoyo para que pueda ser ejecutado en FELIX de SC3UIS (Esto si es exclusivamente linux). Nota: ademas del enlace dado para el https://www.hpcg-benchmark.org/ existe otros posibles para PCs tanto con linux como con MacOs o Windows. Si decide hacerlo con Mac Os o Windows, explique el impacto en los resultados posibles.
    1. Muestre y explique los resultados en cada una de las máquinas (No olvide describir las especificaciones de sistema. (Hardware, Software de Sistema)).
    2. Compare los resultados del HPCG obtenidos con la máquina número uno del listado de noviembre de 2020 del Top500 en el HPCG y discuta al respecto.
    3. Si Colombia quisiera colocar una máquina dentro de las 10 primeras del Top500 de Junio de 2021, teniendo en cuenta únicamente el HPCG, que ¿características arquitecturales y especificaciones de sistema debería tener y qué resultados mínimos obtener? Nota: Observe la evolución histórica Noviembre 2019, Junio 2020, Noviembre 2020.


Grupo 7: Evaluación de Rendimiento : Green500 - Beta

LEON TARAZONA DANIEL ALEJANDRO
MANTILLA CASTRO JULIAN RICARDO
MENDEZ ORTIZ LEWING ANDRES
ORTEGA GELVEZ DIEGO ANDRES
ORTIZ CELIS DANIEL EDUARDO


El listado de las 500 máquinas computacionales denominado Top500 se presenta cada seis meses, convirtiéndose en la competencia mas importante y prestigiosa para todos los fabricantes e integrados a nivel mundial. Uno de los comportamientos mas importantes hoy en dia tiene que ver con la eficiencia energética, lo cual derivo precisamente en una metodología con un listado asociado que se denomina Green500 . Para realizar el trabajo debe responder fundamentalmente estas preguntas:

  1. ¿De que se trata el Green5000 y en que se diferencia del HPL?
  2. ¿Cuales son sus limitaciones?
  3. Descargue y ejecute en una máquina personal (preferiblemente sobre linux) cualquier benchmark libre (no pago) para conocer precisamente la eficiencia energética (por ejemplo, el SPEC_power, DVFS u otro y solicite apoyo para que pueda ser ejecutado en FELIX de SC3UIS (Esto si es exclusivamente linux). Nota: Para PC's existen varias apps como las que puede ver en: https://asapguide.com/best-temperature-monitor-app/ otros posibles para PCs tanto con linux como con MacOs o Windows. Si decide hacerlo con Mac Os o Windows, explique el impacto en los resultados posibles. Igualmente puede observar aplicaciones como en: https://www.maeep.org/doetools
    1. Muestre y explique los resultados en cada una de las máquinas (No olvide especificar las especificaciones de sistema. (Hardware, Software de Sistema)).
    2. Compare los resultados de obtenidos con la máquina número uno del listado de noviembre de 2020 del Green500 y discuta al respecto.
    3. Si Colombia quisiera colocar una máquina dentro de las 10 primeras del Top500 de Junio de 2021, teniendo en cuenta únicamente el Green500, que ¿características arquitecturales y especificaciones de sistema debería tener y qué resultados mínimos obtener? Nota: Observe la evolución histórica Noviembre 2019, Junio 2020, Noviembre 2020.

Grupo 8: Evaluación de Rendimiento: ML-Perf

PEREZ LEAL JUAN PABLO
PORRAS GOMEZ JUAN DAVID
ROMERO SERRANO WILLIAM DAVID
SANCHEZ NIÑO SERGIO ANDRES
SANDOVAL PINEDA EDWARD ANDRES


El conjunto de pruebas comparativas de entrenamiento MLPerf mide qué tan rápido un sistema puede entrenar modelos de Machine Learning, lo cuales bien importante en las arquitecturas que soportan la implementación de técnicas de inteligencia artificial. Para realizar el trabajo debe responder fundamentalmente estas preguntas:

  1. ¿De que se trata el ML-Perf?
  2. ¿Cuales son sus limitaciones?
  3. Descargue y ejecute en una máquina personal y escoja de toda la suite de https://mlperf.org/ un par de benchmarks (principalmente aquellos relacionados con entrenamiento e inferencia) e igual solicite apoyo para ejecutarla sobre FELIX de SC3UIS. Nota: Existen otras suites complementarias que igualmente si desea puede utilizar, basadas. en MLPERF como https://github.com/mlcommons/training
    1. Muestre y explique los resultados en cada una de las máquinas (No olvide describir las especificaciones de sistema. (Hardware, Software de Sistema) y condiciones de los datos.
    2. Compare los resultados de obtenidos con los resultados más recientes publicados en el sitio https://mlperf.org y teniendo en cuenta los resultados obtenidos por usted, que ¿características arquitecturales y especificaciones de sistema debería tener y qué resultados mínimos obtener para ser una arquitectura computacional competitiva?


Grupo 9: Evaluación de Rendimiento: HPL - JetBot

SERRANO RINCON PABLO EDUARDO
ATUESTA SOLANO ANA GABRIELA
CAMPOS SEPULVEDA OSCAR MAURICIO
CONTRERAS CEBALLOS SEBASTIAN
DIAZ CIFUENTES RAYSA KARINA


El listado de las 500 máquinas computacionales denominado Top500 se presenta cada seis meses, convirtiéndose en la competencia mas importante y prestigiosa para todos los fabricantes e integrados a nivel mundial. Uno de los benchmark utilizados es el HPL diseñado para conocer precisamente las velocidades y capacidades de una infraestructura computacional. Para realizar el trabajo debe responder fundamentalmente estas preguntas:

  1. ¿De que se trata el HPL?
  2. ¿Cuales son sus limitaciones?
  3. Descargue y ejecute el HPL en una máquina personal (preferiblemente sobre linux) y solicite apoyo para que pueda ser ejecutado en cualquier JetBot de SC3UIS (Esto si es exclusivamente linux). Nota: ademas del enlace dado para el HPL: https://www.netlib.org/benchmark/hpl/ existe otros posibles para PCs tanto con linux como con MacOs o Windows. Si decide hacerlo con Mac Os o Windows, explique el impacto en los resultados posibles.
    1. Muestre y explique los resultados en cada una de las máquinas (No olvide describir las especificaciones de sistema. (Hardware, Software de Sistema)).
    2. Compare los resultados del HPL obtenidos con la máquina número uno del listado de noviembre de 2020 del Top500 y discuta al respecto.
    3. Si se hace una comparación en escala de las 10 primeras del Top500 de Noviembre 2020, en términos de velocidad (no tanto de capacidad) ¿qué puede decir de una JetBot?. (Nota: Puede hacer una relación lineal o una extrapolación).


Grupo 10: Evaluación de Rendimiento: Discos Duros

FLOREZ ROJAS SEBASTIAN
MALDONADO SUAREZ MARLY YULIETH
OJEDA VILLAMIZAR FABIO ANDREY
PARRA GOMEZ CARLOS DANIEL

La Evaluación de Rendimiento por benchmarking de los discos duros implantados en un sistema en funcionamiento es muy importante, sobre todo para confrontar los valores dados por los fabricantes y por supuesto, tomar decisiones en cuanto actualización o remplazo. Escoja tres de los benchmarks que se encuentran en: https://linuxhint.com/benchmark_hard_disks_linux/ y para realizar este trabajo debe responder las siguientes preguntas.

  1. ¿ De qué se trata cada uno de ellos?
  2. ¿ Cuales son sus limitaciones y principales diferencias?
  3. Los benchmarks seleccionados (3) descárguelos y ejecútelos en una máquina personal (todos son sobre linux).
    1. Muestre y explique los resultados de cada uno de ellos (no olvide describir las especificaciones del sistema. (Hardware, software del sistema)).
    2. Compare los resultados de cada uno de ellos y discuta al respecto.
    3. Teniendo en cuenta esos resultados obtenidos, ¿Qué tanto se diferencia con los que da oficialmente el fabricante del disco?.


Grupo 11: Evaluación de Rendimiento: Red - UPerf

PEREZ LOPEZ SEBASTIAN
RIBERO ARCINIEGAS JOSE DAVID
ROA ORTIZ SERGIO RAUL
RODRIGUEZ LOPEZ LUIS MIGUEL


El rendimiento de la red y como arquitecturalmente responde cualquier sistema es muy importante para garantizar una calidad de servicio. Una de las herramientas mas conocidas para evaluar el rendimiento en ese sentido es Uperf. Para realizar esta asignación debe responder las siguientes preguntas:

  1. ¿ De qué se trata?
  2. ¿ Cuales son sus limitaciones y principales diferencias con otras herramientas populares, como netperf?
  3. Descargue el Uperf sobre (2) dos máquinas diferentes (una puede ser un dispositivo móvil basado en Android o IOS) y realice lo siguiente:
    1. Muestre y explique los resultados de cada uno de los tests sobre las plataformas (no olvide describir las especificaciones del sistema. (Hardware, software del sistema)).
    2. Compare los resultados de cada uno y discuta al respecto.
    3. Teniendo en cuenta esos resultados obtenidos, ¿Qué tanto se diferencia en rendimiento un dispositivo del otro?. Discuta al respecto

Grupo 12: Evaluación de Rendimiento: Red - NetPerf

TABOADA RIVERA FRANS GUILLERMO
TOLOZA ORTEGA DEYCI GISELA
VELASCO BASTO ARLEY DAVID
HERNANDEZ RAMIREZ PAULA CATALINA


El rendimiento de la red y como arquitecturalmente responde cualquier sistema es muy importante para garantizar una calidad de servicio. Una de las herramientas mas conocidas para evaluar el rendimiento en ese sentido es Netperf Para realizar esta asignación debe responder las siguientes preguntas:

  1. ¿ De qué se trata?
  2. ¿ Cuales son sus limitaciones y principales diferencias con otras herramientas populares, como UPerf?
  3. Descargue el Netperf sobre (2) dos máquinas personales diferentes y realice lo siguiente (Nota, el sitio oficial de NetPerf es: https://hewlettpackard.github.io/netperf/):
    1. Muestre y explique los resultados de cada uno de los tests sobre las plataformas (no olvide describir las especificaciones del sistema. (Hardware, software del sistema)).
    2. Compare los resultados de cada uno y discuta al respecto.
    3. Teniendo en cuenta esos resultados obtenidos, ¿Qué tanto afectan aspectos externos a su arquitectura de cada una de las máquinas en estos resultados?. Discuta al respecto.


Asignaciones de Blogs de Estudiantes de Semestres pasados

Este blog/ensayo tiene como objetivo desarrollar una primera entrega del curso a manera de blog, de acuerdo a una asignación especifica. El blog podrá ser publicado en cualquier medio digital de "blog" (por ejemplo: https://www.blogger.com/ o https://es.wix.com) y contará con las siguientes características:

  • Se realizará en español.
  • Podrá tener gráficas, videos incluidos y diseño libre.
  • Mínimo 10 (diez) párrafos de 5(cinco) lineas cada uno, tamaño de letra 12px, cualquier estilo, máximo 12 (Doce) párrafos.
  • Incluir referencias, fuentes de información y lecturas complementarias (No estará dentro de los párrafos del contenido, sino aparte).
  • Incluir caja de comentarios y lograr que mínimo 5 (cinco) de sus compañeros lean y dejen comentarios en su blog, de manera visible. NO FELICITACIONES SINO COMENTARIOS CONCRETOS O PREGUNTAS SOBRE LA TEMATICA DESARROLLADA. SI HAY UNA PREGUNTA SE TIENE EN CUENTA COMO BONUS LA RESPUESTA DADA. (3 Comentarios para la revisión que se hará el 3 de diciembre mínimo y el resto (2) son bonus que se podrán sumar antes del 1 de febrero del 2021)
  • Se recomienda usar tags.
  • Debe verse la fecha de publicación del post (publicación) generada por el sistema.

Ejemplos de blog pueden ser: https://sciencenode.org/feature/Attacking%20COVID-19%20from%20every%20angle.php o https://blog.desdelinux.net/veloren-videojuego-codigo-abierto-inspirado-cube-world/ o ver los blogs de sus compañeros del semestre 1-2020

Deben enviar el enlace del blog desde el 29 de noviembre hasta el 1 de diciembre a las 10:59 P.M. al correo del profesor y del auxiliar del curso, con el asunto: BLOG/ENSAYO ARQUITECTURA . En el cuerpo del mensaje, su código y nombre completo así como el grupo al que pertenece.

Asignaciones para el Blog/Ensayo de Introducción

Se han definido (cinco) temáticas para construir el blog. No olvide tener en cuenta las recomendaciones anteriores. IMPORTANTE: NO PUEDEN HABER BLOGS SIMILARES (Se utilizará un software anti-plagiarismo y anti-copia, a pesar que las temáticas son compartidas)

La manera de realizar el blog es tomar en cuenta tanto la temática principal propuesta como las preguntas guías. Estas preguntas ayudarán a definir una idea principal a desarrollar en el blog que llamará el interés de sus compañeros o del posible lector concerniente, en este caso, estudiantes de ciencias de la computación, ingeniería de sistemas y afines.

Se recomienda observar tanto las diapositivas como las fuentes de información dadas en este curso. Las respuestas de las temáticas propuestas, pueden soportarse en los anexos por ejemplo, de los libros guías de Arquitectura de Computadores, otros blogs o artículos, principalmente pero también en capítulos de los libros y fuentes dadas, las cuales pueden consultarse fácilmente al observar el título de la temática principal. RECUERDE SIN EMBARGO QUE DEBE BUSCAR OTRAS REFERENCIAS PARA COMPLEMENTAR LO QUE PRESENTA EN SU BLOG.

Una estrategia a utilizar para darle valor a su blog es presentar y comentar un caso que ayude a clarificar la temática principal. Recuerde, usted debe ubicarse como ingeniero de sistemas y desde el punto de vista de arquitectura de computadores.

Las asignaciones son dadas de las siguiente manera, si el último dígito de su código de estudiante es 0 o 1, le corresponde el tema A; si el último dígito de su código de estudiante es 2 o 3, le corresponde el tema B; si el último dígito de su código de estudiante es 4 o 5, le corresponde el tema C; si el último dígito de su código de estudiante es 6 o 7, le corresponde el tema D y si el último dígito de su código de estudiante es 8 o 9, le corresponde el tema E. Esas asignaciones están en la siguiente tabla:


TEMAS Temática Principal Preguntas Guía
A Lenguajes de Programación e Infraestructura ¿Por qué es importante tener en cuenta la infraestructura computacional al observar un lenguaje de programación ?

¿Cómo se construye un lenguaje de programación y por qué?

¿Cuál es el futuro de los lenguajes de programación de acuerdo a la evolución en infraestructura computacional?

B La Importancia de la Definición de Requerimientos al Diseñar una Arquitectura Computacional ¿Por qué son importantes los requerimientos?

¿Cómo esos requerimientos se asemejan y se diferencia entre ellos?

¿Los requerimientos pueden ayudar a tener en cuenta las perspectivas de uso y tendencias a futuro de la arquitectura recomendada?

C Arquitectura de Software vs Arquitectura de Hardware ¿Por que se habla de arquitectura y organización y no simplemente de arquitectura?

¿Cuales son las similitudes y diferencias entre ellas?

¿Por qué computacionalmente no se puede hablar de una sin tener en cuenta a la otra?

D La importancia del Sistema Operativo ¿Cual es ese rol tan importante (no el evidente y bien conocido por todos) del sistema operativo en una arquitectura computacional?

¿Qué consideraciones se debe tener en cuenta al implementar un sistema operativo, por ejemplo, observando los requerimientos?

¿Qué debe tener en cuenta los sistemas operativos y sus diferentes distribuciones o sabores que se propongan a futuro?

E Evaluación de Rendimiento de Sistemas Computacionales ¿Por qué es importante evaluar el rendimiento de cualquier sistema computacional?

¿Qué conocimientos implica teóricamente?

¿Por qué es importante definir buenas métricas?

¿Por qué en la implementación de sistemas computacionales, las carácteristicas cualitativas pierden valor cuando se analiza el rendimiento computacional?

BONUS PARA LA NOTA FINAL DE LAS PRACTICAS: Si pública un (1) post en su blog del curso por mes adicional (enero, febrero y marzo) sobre una reflexión personal y profesional, acerca de una de las temáticas relacionadas con el contenido del curso al momento de publicarse (siguiendo las mismas condiciones anteriores), se tendrá en cuenta para la nota de las prácticas. Esta publicación debe ser individual, no debe ser similar a ninguna otra y debe indicarse con un correo al profesor antes del Martes 3 de marzo, enviando la dirección del blog, para verificación. RECUERDE QUE LAS FECHAS DE LOS POSTS DEBEN SER GENERADAS POR EL SISTEMA Y DEBE SER DIFERENTES Y CORRESPONDIENTES A CADA MES ADICIONAL. Se recomienda al momento de realizar la publicación del post adicional informar en ese momento.

Lista de Blogs 1-2020

A continuación, la lista de posts publicados en sus respectivos blogs, por los estudiantes del cursos 1-2020.

https://requearqcomp.blogspot.com/2020/06/la-arquitectura-de-computadoras-es-el.html
https://alvaroluisriosgarz.wixsite.com/website/post/la-importancia-de-los-requerimientos-para-definir-arquitectura-computacional
https://arquitecturaequipo2.blogspot.com/2020/06/importancia.html
https://arquitecturaimportanciarequerimientos.blogspot.com/2020/06/hola.html
https://cdcnadela.blogspot.com/
https://carlosbecerra0300arqdecomputadores.blogspot.com/2020/06/arquitectura-de-computadores.html
https://computingarc.blogspot.com/2020/06/el-sistema-operativo-tiene-la-funcion.html#more
https://gonzalezhenlazadores.blogspot.com/2020/07/enlazadores-linkers.html
https://la-importancia-del-sistema-operativo.blogspot.com/
https://arquitecturapcuis.blogspot.com/p/la-importancia-del-sistema-operativo.html
https://paolaescobar2805.wixsite.com/arquitectura
https://jerarquiadelamemoria.blogspot.com/2020/06/arquitectura-de-computadores-jerarquia.html
https://jerarquiadememoriaarquitectura.blogspot.com/
https://hopkeinst.blogspot.com/2020/07/idealmente-uno-desearia-una-capacidad.html
https://spydp.blogspot.com/
https://puntoflotantesingleydouble.blogspot.com/
https://segmentacionarq.blogspot.com/
https://pipelinesegmentacion.blogspot.com/
https://ensambladoresamayauis.blogspot.com/2020/06/ensambladores-en-arquitectura-de.html
https://enlazadores.blogspot.com/
http://arquitecturacompilador.blogspot.com/2020/07/la-desconocida-importancia-de-los.html
https://fenixchaman.wixsite.com/misitio/post/el-gran-impacto-del-compilador
https://techarch.herokuapp.com/
https://arquihvs.blogspot.com/2020/07/arquitectura-de-software-vs.html
https://videosxm1.wixsite.com/website/post/arquitectura-de-software-vs-arquitectura-de-hardware
https://isafried.wixsite.com/importancia-so
https://arqcompilatorrole.blogspot.com/2020/07/el-rol-del-compilador.html
https://rendimiento-sistemas-computacionales.blogspot.com/2020/07/evaluacion-de-rendimiento-de-sistemas.html
https://jhon2170098.wixsite.com/arquitecturacomp
https://pumarejojerarquiadelamemoria.blogspot.com/2020/07/jerarquiadelamemoria.html
https://juanjosemartinez31.wixsite.com/arquitectura
https://danielamedina1121.wixsite.com/ensambladores
https://misangarita.wixsite.com/ensamblador
https://enlazadoresblogarquitectura.blogspot.com/2020/07/los-enlazadores-son-una-parte-esencial.html
https://notepatharq.blogspot.com/2020/07/blog-post_2.html
https://pipelinedsegmentacionelectronica.blogspot.com/2020/07/segmentacion-electronica_1.html#comment-form
https://bedriitobuenqhorq.wixsite.com/blogarquitectura/post/la-segmentaci%C3%B3n-pipelined
Asignaciones y Temáticas de Proyectos (2 Semestre de 2019)
Grupo Integrantes Tema Artículo
Uno 2160028 - AMARIS ORTIZ JOSE NELSON

2170130 - ANGULO FLOREZ SANTIAGO

2162923 - ADARME DAVILA JAVIER ANDRES

2170081 - BASTO CUADROS JOSEPH FABIAN

2170090 - CALDERON CARRILLO CAMILO ANDRES

SIMULADORES CUANTICOS


Muchos retos nuevos se plantean con la computación cuántica, tanto en términos de lo que hoy se conoce como computación, hasta los verdaderos alcances que podría tener. Por ejemplo, el redefinir desde la misma memoria hasta los lenguajes de programación y la representación matemática misma.


Es por eso, que mas allá de tener computadores "realmente" cuánticos, los simuladores cuánticos en hardware y software han permitido atacar desde ya esos retos y plantear nuevas preguntas que deben resolverse por ingenieros y computistas más que por físicos.


La principal pregunta que surge es ¿Qué son los simuladores de computación cuántica o Simuladores Cuánticos? Tenga en cuenta tanto en hardware como en software e igual observe como productos comerciales como el Atos Learning Machine son propuestos y cuales son sus oportunidades, ventajas y desventajas.


https://arxiv.org/abs/1912.06938

https://www.quantiki.org/wiki/list-qc-simulators

A-Uno
Dos 2162119 - CASTELLANOS BOHORQUEZ JUAN ANGEL LEONARDO

2170095 - CASTELLANOS PINZON LILIANA PAOLA

2101154 - CASTILLO CACERES DEIMER IVAN

2141986 - VARGAS MARTINEZ JESUS SEBASTIAN

2162144 - VARGAS GONZALEZ LAURA SOFIA

ARM


En noviembre pasado, durante la Conferencia Internacional de Supercomputación, Almacenamiento, Redes y Análitica de Datos en noviembre de 2019, se presentó las oportunidades del mas reciente computador basado en ARM, propuesto por Fujitsu y que será utilizado en grandes infraestructuras, como el caso de CRAY, ya no para maquinas exascale sino máquinas petaescale, basado en ARM. ¿Porqué ARM y no X86 u otras tecnologías? ¿ Que implicaciones tiene?


https://www.hpcwire.com/2019/11/12/cray-fujitsu-both-bringing-fujitsu-a64fx-based-supercomputers-to-market-in-2020/

https://www.arm.com/

A-Dos
Tres 2160068 - CASTRO MARTINEZ DAVID SANTIAGO

2152777 - CASTRO PALOMARES JOHAN DAVID

2170134 - CASTRO DUITAMA SANTIAGO ANDRES

2171455 - SANTAMARIA RINCON JENNY MARCELA

COMPUTACION CUANTICA


Cada año, las predicciones sobre la utilización másiva o "popular" de los computadores cuánticos se disminuye. Por ejemplo, en el 2018, se hablaba que no habría aplicaciones reales y computadores cuánticos hasta dentro de veinte años. En el 2019, ya se habla de que la realidad de ese tipo de uso será entre cinco y diez años. Es así como en noviembre de 2019, durante la Conferencia Internacional de Supercomputación, Almacenamiento, Redes y Análitica de Datos en noviembre de 2019, Google anunció su supremacia cuántica, aunque IBM, DWAVE y otros lo hacen igualmente.


Teniendo en cuenta lo que arquitecturalmente es un computador cuántico, ¿Cual es esa es la realidad? Y, ¿Qué definitivamente no es computación cuántica? observando lo que popularmente se dice en nuestro medio como ingenieros de sistemas y de computación.


https://www.sciencenews.org/article/google-quantum-supremacy-claim-controversy-top-science-stories-2019-yir


https://www.ibm.com/quantum-computing/


https://www.computer.org/csdl/magazine/co/2019/06/08728103/1axaIk2UoQE

A-Tres
Cuatro 2162126 - COBOS BECERRA MAUREN LORENA

2151484 - COLMENARES RODRIGUEZ JULIAN DAVID

2160090 - DLAIKAN CASTILLO KEVIN JOEL

2162149 - DURAN CASTRO OSMEL SHAMIR

2171763 - CACERES CARREÑO NELSON ALEXIS

INTEL XE


Intel, tras rumores del desarrollo acerca de su nueva arquitectura basada en GPUs, decidió presentar publicamente en noviembre de 2019 durante el Intel HPC Developer Conference, previo a la Conferencia Internacional de Supercomputación, Almacenamiento, Redes y Análitica de Datos en noviembre de 2019, su Intel XE GPU junto con toda la suite de desarrollo Intel One Api. ¿De que se trata y por qué, dando un excelente ejemplo de codiseño (Hardware+Software+Abstracción), se hizo la presentación de esa manera? Recuerde que debe enfocarse en Intel XE pero no dejar de lado Intel OneAPI.


https://www.pcgamesn.com/intel/xe-gpu-release-date-graphics-card-specs-performance

https://newsroom.intel.com/news-releases/intel-unveils-new-gpu-architecture-optimized-for-hpc-ai-oneapi/#gs.sq0c3e

A-Cuatro
Cinco 2160042 - ESTEVEZ CARVAJAL CARLOS ALFONSO

2151852 - GONZALEZ ORTIZ DIEGO FERNANDO

2132173 - LEON RODRIGUEZ JUAN SEBASTIAN

2170104 - GALVAN ALVAREZ NICOLAS

2131799 - NAVARRO HERRERA HORDAN ANDRES

CONVERGENCIA HPC CON AI


La explosión cambrica de capacidades y diversidad en arquitecturas computacionales, hacen que en la jerga especializada, exista una convergencia entre el HPC y la Inteligencia Artificial. Tomando como referencia el webminar con en el enlace dado, ¿De que se trata esa convergencia? ¿Que oportunidades como ingenieros de sistemas y de computación nos representa? No olvide consultar otras fuentes sobre el tema.


https://www.hpcwire.com/the-convergence-of-hpc-and-ai/

A-Cinco
Seis 2161341 - OQUENDO RINCON MIGUEL ANGEL

2170111 - OROZCO ARDILA MATEO

2170105 - ORTIZ TRILLOS JUAN FELIPE

2162089 - GARCIA FLOREZ SEBASTIAN

2130124 - GARCIA HERNANDEZ JORGE JULIAN

SMART CITIES (COMPUTER) ARCHITECTURE


Los personajes asociados con políticas TI en las poblaciones humanas, han implementado el uso de la palabra Smart Cities, sin muchas veces entender de que se trata, mas allá de los productos y el consumo mismo de tecnología. Sin embargo, los ingenieros y especialistas, hoy en dia tienen retos muy precisos de acuerdo a visiones comunes, perspectivas, evolución tecnológica y por supuesto, realidades locales. Teniendo en cuenta estos aspectos, en términos computacionales (hardware+software principalmente), como sería esa arquitectura computacional de smart city y los principales retos. Imaginé un ejemplo para la ciudad universitaria del campus principal UIS.


https://thesai.org/Downloads/Volume6No11/Paper_32-Smart_City_Architecture_Vision_and_Challenges.pdf


https://www.smartcitiesdive.com/ex/sustainablecitiescollective/new-architecture-smart-cities/68921/

A-Seis
Siete 2162130 - MANTILLA ROMERO LAURA MARCELA

2170116 - MENDOZA LOPEZ FREDY ALEJANDRO

2170133 - MONCADA RODRIGUEZ ORLANDO ALBERTO

2170102 - MORALES NORATO DAVID SANTIAGO

2160793 - URIBE GARCIA ANDRES FELIPE

NVIDIA GPUS FUTURE


NVIDIA tiene una posición dominante en el mercado, en GPU computing, siendo no solo pioneros sino también contribuyendo al uso masivo de la Inteligencia Artificial en el mundo. En la Conferencia Internacional de Supercomputación, Almacenamiento, Redes y Análitica de Datos en noviembre de 2019, su presidente y co-fundador, Jen-Hsun "Jensen" Huang, en un evento privado, dirigido principalmente a socios mundiales (alrededor de mil, en los cuales la UIS hizó parte, como única institución educativa en Colombia que es Centro Asociado de Investigación y Académico ), expuso importantes anuncios sobre el futuro del GPU Computing. Tomando como referencia su intervención dada en el enlace siguiente, ¿Cual es ese futuro? ¿ Como se enmarca y que retos nos plantean?


https://ustream.tv/channel/21695927

A-Siete
Ocho 2151129 - PEREZ ALTAMAR DANIEL ALEJANDRO

2161889 - PINTO DIAZ DUVAN FERNANDO

2163021 - PORRAS MELGAREJO EDISON CAMILO

2171452 - PORTILLA MORA JEAN CARLOS

2161062 - CARDENAS ACEVEDO SEBASTIAN

ML APLICADO AL DISEÑO DE ARQUITECTURA DE COMPUTADORES


Machine Learning se usa para diferentes problemas y desarrollos. ¿Pero que pasa cuando se usa para diseñar nuevas arquitecturas de computadores?


https://www.hpcwire.com/2020/01/09/study-examines-efforts-and-prospects-for-ml-use-in-computer-architecture-design/


https://arxiv.org/pdf/1909.12373.pdf

A-Ocho
Nueve 2170137 - RODRIGUEZ VILLAMIZAR JULIAN ORLANDO

2170136 - ROJAS CASADIEGO DAVID FELIPE

2170135 - RUEDA MARIÑO DANIEL FELIPE

2152204 - RUIZ LAGOS CHRISTIAN EDUARDO

2170107 - TOLOSA VILLAMIZAR JULIAN FELIPE

SUSTAINABLE CLOUD COMPUTING ARCHITECTURE


Rajkumar Buyya quién es conocido por la comunidad especializada como uno de los padres del Cloud Computing (pasando en término de economy grids hacia Cloud), propone desde hace varios años cambios de paradigma que lentamente las empresas han venido asumiendo para prestar sus servicios cloud, afectando desde grandes infrastructuras como las ofertadas por AWS, Azurre, hasta otras de escalas mas modernas. ¿Porque es tan importante la sostenibilidad en los términos que el expresa, que va a pasar y como afecta completamente en términos de arquitectura y desarrollo lo que hoy conocemos como cloud? Tenga en cuenta el artículo de referencia pero no olviden observar otras fuentes de información.


https://arxiv.org/pdf/1805.01765.pdf

A-Nueve
Diez 2160060 - RAMIREZ TRIANA NICOLAS MAURICIO

2162133 - RENGIFO MEJIA CHRISTIAN ALEJANDRO

2162887 - RODRIGUEZ GARCES EDINSON JAHIR

2162113 - SERRANO VILLANOVA LAURA DANIELA

2170127 - SERRANO ACEVEDO CRISTIAN GUILLERMO

RISC -V


RISC-V es un ISA gratuito y abierto que permite una nueva era de innovación de procesador a través de la colaboración estándar abierta. Nacido en la academia y la investigación, RISC-V ISA ofrece un nuevo nivel de libertad de software y hardware libre y extensible en arquitectura, allanando el camino para los próximos 50 años de diseño e innovación informática. La UIS, por ejemplo, viene contribuyendo desde el grupo de desarrollo de la escuela E3T dirigido por el profesor Elkim Roa. ¿ De que se trata? ¿ Porqué es tan importante? ¿Cómo desde la EISI y desde el curso de Arquitectura de computadores para las versiones futuras, se podría contribuir?


https://riscv.org/


https://github.com/ckdur

A-Diez

Asignaciones y Temáticas de Proyectos (1 Semestre de 2019)

Tengan en cuenta que los grupos son definidos y los integrantes no pueden cambiarse. Todos deben trabajar y cualquier anormalidad en el desarrollo del mismo, debe informarse al profesor por lo menos con dos semanas de anticipación a la entrega. Se recomienda observar los trabajos de los semestres anteriores para conocer el formato y lo que se espera del mismo.

Grupo Participantes Tema Articulo + Diapostivas

(Disponible a a partir del 16 de Agosto)

G1 2162100 - ARDILA GOMEZ DANIEL FELIPE VHDL Y VERILOG

VHDL y Verilog son los HDL’s (Hardware Description Languages) más difundidos actualmente. Ambos son estándares en la industria de ASICs y FPGAs. Ambos poseen sus respectivos estándares IEEE. Existe aún hasta el día de hoy una discusión sobre cual es mejor. A partir de las referencia sde base dadas en wikipedia: https://en.wikipedia.org/wiki/VHDL y https://en.wikipedia.org/wiki/Verilog diga de que se trata cada uno de ellos, y por medio de un ejemplo, haga una comparación, mostrando a su criterio cuál es el más adecuado, igualmente justificando ese criterio.

ArchiG01
2160044 - CHACON SUAREZ JAVIER ALEXI PArch01
2161352 - VILLAMIZAR RUIZ ANDREA FABIANA
G2 2160414 - SANMIGUEL ARENAS CAMILO ENRIQUE ADVANCED PROCESSORS ARCHITECTURES (APA) AND TECHNOLOGIES (APT)

El término APA es un sistema de procesador y memoria distribuida escalable que es configurable y reconfigurable desde los dispositivos, la integración con el sistema y comunicaciones (fabric), que constituye hoy en dia futuras direcciones para la concepción de los sistemas computacionales. en el caso de las APT, involucran las tecnologías relacionadas para ese tipo de procesamiento, teniendo una especial atención en herramientas, mecanismos y usos, como el caso de inteligencia artíficial. Esto a generado la creación de empresas como http://advancedprocessorarchitectures.com/ y https://www.arm.com/ pero también otras confirmadas como Intel, AMD y NVIDIA. Teniendo en cuenta lo que se conoce como APA y APT describa cuales son las principales desarrollos implementados en los últimos cinco años y como en la escala regional/nacional afecta esos desarrollos (por ejemplo, teniendo el cuenta el uso, tendencias del mercado, decisiones políticas, etc). Tenga en cuenta que debe enmarcar teóricamente APA y APT observando las características más importantes para limitar su trabajo. Puede guiarse por ejemplo en las lineas y contribuciones realizados por el grupo en APT de la Universidad de Manchester: http://apt.cs.manchester.ac.uk/APT_Research.php

ArchiG02
2161638 - CAMACHO GALVIS CHRISTIAN STIVEN
2161671 - VEGA VILLABONA GABRIELA FERNANDA PArch02
2161342 - PALENCIA POMBO CARLOS ALBERTO
G3 2162114 - VILLALBA SANTOS ANDREA JULIANA ARQUITECTURAS COMPUTACIONALES PARA INTELIGENCIA ARTIFICAL

La explosión cámbrica de tecnologías que proporcionan grandes capacidades de procesamiento y la implementación en paralelo de algoritmos considerados anteriormente demasiado pesados para programarse han permitido el masivo uso de la Inteligencia Artificial y el Aprendizaje Automático (Machine Learning). Precisamente, hoy en dia, se encuentra un amplio espectro de arquitecturas e integrados para inteligencia artificial (https://cacm.acm.org/magazines/2018/4/226374-chips-for-artificial-intelligence/) De acuerdo a esa realidad, describa las características arquitecturales existentes y deseadas de esas arquitecturas computacionales y por que son tan "especiales" y diferentes a las tradicionales. De acuerdo al mercado, ¿qué futuro inmediato ve en el uso de esas tecnologías en Colombia y si existe una consciencia de la existencia de ellas a nivel regional y nacional?. No olvide justificar todas sus respuestas.

ArchiG03
2141846 - DIAZ HIGUERA JHOAN MANUEL
2161336 - PARRA RODRIGUEZ JHON ANDRES PArch03
G4 2161223 - DOMINGUEZ MURALLAS JEFERSON ALEXANDER REALISMO CUANTICO

En los últimos años, los desarrollos en computación cuántica permitió pasar de la especulación y del trabajo teórico-práctico realizado por los físicos a plantear problemas de ingeniería y ciencias computacionales, relacionados con la implementación, la representación de los algoritmos fisico-matemáticos en lenguajes de programación existentes y nuevos, conceptos como el del sistema operativo, aspectos arquitecturales como lo que se considera "memoria" y la utilización para la solución de problemas reales. Empresas como IBM o D-Wave han colocado en el mercado costosos computadores cuánticos, pero también existen simuladores cuánticos como los propuestos por ATOS y HPE aprovechando las características de arquitecturas híbridas y tecnologías avanzadas de procesamiento. Precisamente, la IEEE en su revista COMPUTER de Junio de 2019 dedicó toda la edición a ese realismo cuántico (https://www.computer.org/csdl/magazine/co/2019/06). Teniendo en cuenta esa edición pero principalmente el artículo Really Small Shoe Boxes: On Realistic Quantum Resource Estimation , ¿cuales preguntas desde el punto de vista de ingeniería ya se están respondiendo satisfactoriamente y cuales persisten? (Por ejemplo, observe lo que se refiere a sistemas operativos y compiladores). Igualmente teniendo en cuenta la misma edición, que problema real (diferente a los de criptográfia) se pueden tratar con computación cuántica. Se recomienda igual observar el trabajo realizado por sus compañeros el año pasado acerca de Arquitecturas Computacionales para Computación Cuántica, disponible en este sitio.

ArchiG04
2160039 - ALBARRACIN BARBOSA JUAN RICARDO
2151853 - PEDRAZA CADENA JESSICA FERNANDA PArch04
2160023 - CASTILLO CAÑAS IVAN RODRIGO
G5 2162116 - TORRES CARREÑO DIANA SOFIA SISTEMAS CIBERFISICOS (CYBER-PHYSICAL SYSTEMS)

Un sistema ciberfísico es una orquestación de computadores y sistemas físicos. Aunque el término pareciera exótico, los sistemas de control, aquellos que permiten monitoreo, captura y difusión de datos, como los que se encuentran en diferentes sistemas embarcados y que son componentes en sistemas IoT a diferentes niveles (Edge, Fog o Cloud) son sistemas ciberfísicos. Observando el pasado, presente y futuro de los mismos (por ejemplo, a partir del artículo https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4435108/) y el mapa conceptual presente en el siguiente sitio: https://ptolemy.berkeley.edu/projects/cps/ sintetice el presente y futuro de esos sistemas ciberfísicos y plantee un proyecto (no en detalle) que involucre este tipo de sistemas ciberfísicos en el campus universitario, por ejemplo, teniendo en cuenta sistemas IoT para Smart Campus.

ArchiG05
2163002 - VALENCIA GOMEZ YEISON ARGEMIRO
2161327 - GIL GAMEZ OSCAR ANDRES PArch05
G6 2090041 - DALLOS MARTINEZ LEONARDO HERNANDO ARQUITECTURAS PARA NUBE HIBRIDA (HYBRID CLOUD ARCHITECTURE)

Un nube híbrida puede entenderse conceptualmente combina aquellas propiedades de las nubes privadas y las nubes públicas. Algo interesante que tienen las nubes híbridas, en términos de infraestructura tecnológica es que se ha convertido en el mejor soporte para sistemas IoT, Big Data y móviles. Una manera resumida de ver los conceptos arquitecturales asociados a este tipo de nubes computacionales híbridas esta en el sitio: https://www.networkcomputing.com/cloud-infrastructure/hybrid-cloud-architecture-concepts . Teniendo en cuenta esos conceptos y los elementos y componentes de ese modelo, que soporte de infraestructura podría soportar cada uno de esos elementos y por supuesto, cual es el papel precisamente de arquitecturas computacionales híbridas y heterogéneas (por ejemplo, aquellas que tienen diferentes tipos de procesadores GPUs/CPUS/TPUS/FPGAS/ARM/X86 o de memoria). Piensen en usos para este tipo de nubes en el contexto universitario.

ArchiG06
2162134 - MARTINEZ ESTRADA EMMANUEL DAVID
2161325 - ROZO QUINTANA LICETH YANETH PArch06
2141986 - VARGAS MARTINEZ JESUS SEBASTIAN
G7 2161343 - GOMEZ AVILA ANNGY NATHALIA COMPUTACION EDGE ORBITAL

Edge Computing es un paradigma relativamente reciente que ha permitido la implementación de diferentes soluciones en el ámbito terrestre y aun asi sigue ofreciendo posibilidades poco exploradas. Uno de los usos mas novedosos de Edge computing, es el desarrollado en órbita, que puede consultarse en: https://ieeexplore.ieee.org/document/8674608 Tomando como base este trabajo, expliquen las principales características arquitecturales, los retos enfrentados y los resultados en la evaluación obtenidos. ¿Cuales son los principales problemas que persisten? ¿Cómo se imaginan ustedes que pueden resolverse o al menos tratarse de resolver?

ArchiG07
2160082 - PICON RODRIGUEZ CRISTIAN ANDRES PArch07
2162118 - CARDENAS REYES JEISSON ALEJANDRO
G8 2162017 - HERRERA BLANCO DIANA ALEJANDRA SERVIDORES DE PROCESAMIENTO MASIVAMENTE PARALELO

En el mundo actual, la posibilidad de usar servicios en la nube como Netflix, video juegos en linea, servicios móviles como Instagram o Whatsapp es portado por centros de datos modernos que contienen servidores especializados que soportan procesamiento masivamente paralelo. Teniendo en cuenta los artículos https://ieeexplore.ieee.org/document/8691538 y http://www.ittoday.info/AIMS/Information_Management/3-02-45.pdf, cuales son las principales características de este tipo de servidores. Observe en el mercado técnicamente (no económicamente) que fabricante o integrador ofrece a su criterio (y justificando su decisión) la mejor alternativa y por qué este tipo de servidores igualmente se usan en aplicaciones y frameworks para Deep Learning e Inteligencia Artificial. Muestre un ejemplo real. (No olvide explorar mas referencias bibliográficas y contribuciones tanto de la industria como de la academia).

ArchiG08
2161906 - RODRIGUEZ MARTINEZ KAREN DANIELA
2152499 - VIVIESCAS ROMERO JUAN PABLO PArch08
2151846 - MANTILLA VILLAMIZAR VICTOR ALFONSO
G9 2151830 - DULCEY LIZARAZO SERGIO ANDRES IMPLICACIONES ARQUITECTURALES DE MICROSERVICIOS EN LA NUBE

Los ingenieros de sistemas saben que la implementación de microservicios aseguran la optimización de la calidad de servicio (QoS) en infraestructuras que soportan aplicaciones finales en la nube, pero igualmente plantean retos excepcionales, principalmente cuando se diseñan centros de datos y los servicios asociados. A partir de la contribución que puede consultarse en https://arxiv.org/abs/1805.10351 explique cuales son las principales implicaciones y retos enfocándose en las aplicaciones y mostrando un ejemplo. ¿Cómo es la relación con las microarquitecturas?

ArchiG09
2163022 - PINZON URIBE HAZEL DAVID
2152480 - MORALES OSMA ANDREA JIMENA PArch09
G10 2150403 - VALLEJO HUERTAS MARIO HERNAN COSTO ELECTRICO Y CENTROS DE DATOS SOSTENIBLES

El problema del costo energético relacionado con las capacidades computaciones que nos dicen que tan eficiente computacionalmente es un sistema es un gran reto abierto que se ha tratado con muchas estrategias, no solo a nivel de infrastructura sino también con algoritmos y diferentes mecanismos de implementación de esos algoritmos. El consumo eléctrico por supuesto, es un factor importante al contratar y ofrecer servicios computacionales en la nube, pero también es una responsabilidad ambiental muy alta. Diferentes autores han presentado contribuciones al respecto, por ejemplo, un reciente trabajo que puede verse en: https://ieeexplore.ieee.org/document/7938380 presenta una buena alternativa para reducir el consumo y el costo asociado. Teniendo como base esa contribución, explique de que se trata la computación sostenible y por que es importante, igualmente, ¿por qué este tipo de estrategias son interesantes e implementadas por los diferentes prestadores de servicios y diseñadores de centros de datos?. A manera de información importante, consulte y estime el consumo eléctrico de los centros de datos de la Universidad Industrial de Santander (DSI, SC3UIS en Guatiguará) y si se han observado estrategias para reducir el consumo de energía (por ejemplo, desde el diseño de la solución de infraestructura).

ArchiG10
2150376 - PUERTAS ZULUAGA ALFREDO RAFAEL
2142608 - NIÑO MENDEZ ESTEBAN ANDRES PArch10
2152476 - SEQUEDA CASTILLO KARINA
G11 2162135 - RIVEROS GOMEZ MARIA PAULA ALMACENAMIENTO LIQUIDO EN LA NUBE

El almacenamiento de datos siempre será un reto que desde diferentes perspectivas se ha venido tratando, no solo teniendo en cuenta tecnología, sino estratégias y protocolos de colección, transferencia y guardado de la información. Recientemente, surgió el término Liquid Cloud Storage (las versiones del principal artículo están relacionadas y disponibles por el mismo grupo de autores (y pre-prints) en https://www.researchgate.net/publication/317087859_Liquid_Cloud_Storage , https://arxiv.org/abs/1705.07983 , https://dl.acm.org/citation.cfm?id=3281276 ) Explique de que se trata, teniendo en cuenta las principales características arquitecturales (tanto en infraestructura como en sistema). ¿Por qué es importante la tolerancia a fallos y la reparación?. Den un ejemplo.

ArchiG11
2142665 - DUARTE DELGADO MIGUEL ANGEL PArch11
2151856 - FERNANDEZ CELIS ELKIN DARIO
G12 2162146 - NIÑO PANQUEBA JAIR EDUARDO ARQUITECTURAS PARA AUTOMOVILES AUTONOMOS

Sin duda alguna, uno de los logros mas interesantes en el desarrollo de los sistemas computacionales es la implementación de sistemas inteligentes para la conducción autónoma en vehículos. Mucho se dice de los aspectos arquitecturales en la prensa, pero es importante entender sin duda los parámetros de diseño necesarios y por supuesto los principales retos durante su implementación que derivan en su uso tanto exitoso, como sobre situaciones inesperadas (que pueden ser fatales https://en.wikipedia.org/wiki/List_of_self-driving_car_fatalities ). Teniendo en cuenta el artículo presente en https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8340798, ¿cuales serian las principales características y patrones de diseño arquitectural e implementación para esos vehículos autónomos.? Imagine que se hará el auto de #LaUISQueQueremos para transportar a las personas a través del campus central hacia le parqueadero del estadio. Observando lo anterior, a manera de ejemplo, cómo seria ese macro-diseño (un diseño amplio sin especificaciones detalladas) y qué habría que tener en cuenta para implementarlo?

ArchiG12
2161326 - VERA NEGRON MARIA FERNANDA
2163024 - BUITRAGO MEDINA JONATHAN EDUARDO PArch12
Temáticas de Proyectos (2 Semestre de 2018)

Se publicarán y asignarán la primera semana de septiembre. Se publicarán al regreso después del cese de actividades en el 2019.

Grupo Participantes Tema Artículo Presentado (Disponibles a partir del 16 de Febrero)
1 2130056 - ACEROS BLANCO CARLOS JAVIER

2151257 - ALVAREZ CASTILLO BRYAN DANIEL

2161907 - APARICIO NOVA MARIA CAMILA

2161069 - ARANGO SERRANO JUAN JOSE

Arquitecturas computacionales para Inteligencia Artificial:

Uno de los artículos más citados en computación ha sido el publicado por Gordon Bell y Peter Freeman en 1987 acerca de los requerimientos computacionales para que la inteligencia artificial fuera útil ( DOI: 10.1145/1480083.1480099 Conference: Fall Joint Computer Conferenc, At Anaheim, CA, Volume: 41 : http://dl.acm.org/ft_gateway.cfm?id=1480099 )

Más de 30 años después, sin el desarrollo y las prestaciones actuales de las arquitecturas computacionales, ningún algoritmo de Inteligencia Artificial podría ser implementado y menos aún todos sus usos, tanto así que se dice que estamos en una nueva era dorada de la computación, como la que se tuvo hace 40 años. Observando el artículo reciente propuesto por Jeff Dean, David Paterson y Cliff Young ( https://ieeexplore.ieee.org/document/8259424 ) y comparándolo con el de Gordon Bell, responda en su artículo principalmente si esos requerimientos de hace 30 años se han cumplido hoy en dia y cuales son las principales diferencias y similitudes con lo propuesto en esos años. Igualmente, cuales son las implicaciones sociales en el contexto colombiano y discuta si de alguna manera, se es consciente de esa realidad en torno a la relación Arquitectura de Computadores : Alto Desempeño Computacional : Inteligencia Artíficial.

TF1
2 2151824 - CASTELLANOS CONGUTA YANN KARLO

2142611 - CASTELLANOS VERGAÑO LUIS GERARDO

2162042 - ARENAS MARQUEZ MARTHA ELIANA

2162061 - BARRERA MANRIQUE CARLOS DANIEL

Arquitecturas computacionales para Blockchain:

Mucho se habla de blockchain pero desde el punto de vista de tecnología es necesario tener en cuenta tendencias, requerimientos e implicaciones. La bilbliografía especializada trata el tema teniendo en cuenta por supuesto, que uso se le da la tecnología, como es el caso del articulo presentado por Zibin Zheng ; Shaoan Xie ; Hongning Dai ; Xiangping Chen ;y Huaimin Wang ( https://ieeexplore.ieee.org/abstract/document/8029379 ) Teniendo como base este artículo (pero por supuesto buscando en otras fuentes de información), ¿ tecnológicamente que se debería tener en cuenta para implementar blockchain en algún tipo de aplicación en Colombia? Describa un par de ejemplos, haciéndo enfásis en la arquitectura computacional (hardware/software) y por supuesto, como ingenieros de sistemas que son, discuta acerca de las implicaciones que tiene el uso de blockchain críticamente, más allá de las bondades. (Recomiendo buscar Block Chain Alianza y Block Chain Colombia igualmente).

TF2
3 2152500 - CORDOBA CARRERO JUNIOR ALEJANDRO

2110228 - DIAZ GUERRERO SARA INES

2134305 - CERA BUSTAMANTE ANDRES FELIPE

2160041 - CORZO GOMEZ OSCAR ANDRES

Arquitecturas computacionales Fog y Edge

Desde el desarrollo de Internet, diferentes paradigmas computacionales se han propuesto, los cuales sin duda alguna han tenido un importante impacto en el desarrollo tecnológico y social de nuestra civilización. El Internet de las Cosas y su relación con la computación en la nube, desde hace varios años plantea dos nuevos paradigmas que no pueden verse de manera aislada: Fog and Edge Computing. Teniendo en cuenta el artículo de referencia que se da de base para el desarrollo de este trabajo, ¿cuales son las diferencias entre Fog and Edge Computing? ¿En que se relacionan y por que no pueden separarse los dos paradigmas? Con un ejemplo en la Universidad Industrial de Santander, muestre este paradigma. (https://arxiv.org/pdf/1808.05283.pdf)

TF3
4 2161073 - GOMEZ ORTIZ ANDRES FELIPE

2152497 - GOMEZ ALBIADEZ NATALIA ANDREA

2130535 - GOMEZ ESTUPIÑAN ANGEL FABIAN

2122910 - VILLABONA ARDILA DAVID

Arquitecturas Computacionales para Computación Cuántica:

La Computación Cuántica, más allá que especulativa es una realidad y hoy en dia es un apasionante tema de estudio y un intenso dominio que si bien, inicialmente ha sido explorada por físicos y matemáticos, los problemas fundamentales que existen se tratan desde el punto de vista computacional y arquitectural. Una interesante comparación entre dos arquitecturas existentes puede ser vista en: https://www.pnas.org/content/114/13/3305/ así como un artículo explicativo sobre una arquitectura determinada en: https://dl.acm.org/citation.cfm?id=3177152 . Teniendo en cuenta estas dos fuentes de información como base, explique computacionalmente (desde el punto de vista como ingeniero de sistemas y como arquitecto computacional) como es precisamente esa arquitectura (procesamiento, tipos de procesadores, soporte hacia lenguaje de máquina, etc.)

TF4
5 2162094 - GARAVITO CHTEFAN MAXIMILIANO

2143601 - FRANCO CASADIEGO JOAN SEBASTIAN

2160052 - GOYENECHE CALDERON VALENTINA

2161698 - VILLAMIZAR CORREA DIEGO ARMANDO

Los Supercomputadores como SuperMáquinas para Inteligencia Artíficial y Análitica de Datos:

Recientemente fue publicado por la ACM (https://cacm.acm.org/magazines/2018/11/232217-will-supercomputers-be-super-data-and-super-ai-machines/fulltext) un artículo de como las grandes infrastructuras de HPC en China, hoy en día son lideres para tratar problemas realmente grandes en inteligencia artíficial y análitica de datos. Tomándo como base ese artículo, y por supuesto, como ingenieros de sistemas y especialistas en arquitectura de computadores, exponga porque esas supermáquinas pueden tratar esos superproblemas. Haga una breve discusión sobre que se requeriría en el caso colombiano y de manera crítica, mencioné si se esta al nivel o no para asumir esos retos y que se debe hacer (o si se esta haciendo) para asumirlos de manera competitiva a nivel global.

TF5
6 2150340 - INFANTE MONSALVE NESTOR IVAN

2151482 - LANDAZABAL LANDAZABAL JAVIER DAVID

2152477 - GUTIERREZ CARREÑO NICOLAS GERARDO

2122274 - HERNANDEZ TORRES ANDRES RICARDO

Arquitecturas Computacionales para Apoyo a la Conducción:

Desde hace una decada, gracias a la explosión de las capacidades de hardware, se ha presentado diferentes alternativas para el apoyo a la conducción, desde algoritmos bien conocidos en Inteligencia Artíficial. Recientemente, NVIDIA, presentó Drive 8.0 Software, un framework para desarrollar aplicaciones para ese soporte de conducción (https://blogs.nvidia.com/blog/2019/01/07/drive-software-8-0-automated-driving/?_lrsc=02711740-73bc-44cf-aa67-304ec9076b28&ncid=so-lin-lt-798). Teniendo como base el enlace anteriormente dado, que hardware y soporte tecnológico es necesario para soportar Drive 8.0. Como ingeniero de sistemas, describa dicho framework sin olvidar enlazarlo con el hardware necesario. Discuta como sería una prueba de concepto en Bucaramanga, de manera crítica, teniendo en cuenta todos las variables existentes.

TF6
7 2160075 - MOGOTOCORO FAJARDO JORGE ANDRES

2160063 - MORENO RIOS JUAN PABLO

2160076 - JAIMES ESTEBAN JHEYSON ARLEY

2161329 - JIMENEZ ARCINIEGAS LUIS CARLOS

Rendimiento de las Unidades de Procesamiento Tensor:

Las Unidades de Procesamiento Tensor (TPUs), fueron propuestas desde el 2006 como una evolución de las Unidades de Procesamiento Gráfico (GPUs9 dirigidas principalmente a tratar eficientemente la matemática existente en algoritmos bien conocidos de Inteligencia Artificial. Su rendimiento real ha sido ampliamente estudiando, como puede verse en el artículo de base dado (https://dl.acm.org/citation.cfm?id=3080246) y hoy en dia los grandes centros tanto de investigación como centros de datos de producción las tienen implantadas en sus sistemas. Explique de que se trata teniendo en cuenta cuales son las principales diferencias arquitecturales con las GPUs y las CPUs. Discuta cuales son las implicaciones para los ingenieros de sistemas y desarrolladores, al existir las TPUs.

TF7
8 2142669 - RANGEL FLOREZ DEISY KATHERINE

2160062 - NAVAS BURGOS MARIA FERNANDA

2151857 - ROJAS PRADA WILDER STEVEN

El regreso grandioso de los computadores vectoriales:

En el 2018, NEC anunció su motor de procesamiento NEC SX Aurora TSUBASA, que ya se encuentra implantado en diferentes soluciones en el mercado (https://www.nec.com/en/global/solutions/hpc/sx/index.html y https://dl.acm.org/citation.cfm?id=3291728 ) , mostrándose como el gran regreso de los costosos pero excelentes procesadores vectoriales. Teniendo en cuenta las referencias dadas, exponga porque es interesante la computación vectorial hoy en dia y que ha hecho tan atractiva e implantable la solución propuesta por NEC. No olvide comparar si existen otras opciones por otros fabricantes a nivel mundial. En el contexto colombiano, ¿En que usaría este tipo de procesadores vectoriales y que implicaría?.

TF8
9 2160055 - LIZARAZO SANDOVAL MARIA DANIELA

2140182 - MARTINEZ CIFUENTES JOHN SEBASTIAN

2151252 - REY OLARTE LIZETH KATHERINE

2120372 - SANTOS SARMIENTO CARLOS ARLEY

Controladores de Memoria:

La memoria siempre ha sido un problema y un reto interesante computacionalmente y más hoy, cuando las capacidades de procesamiento y el gran volumen de datos plantean requeirimientos realmente altos que involucran pensar de una manera diferente la memoria. Uno de los retos tiene que ver con los controladores de memoria. Teniendo en cuenta el siguiente articulo como base ( https://dl.acm.org/citation.cfm?id=2039374 ) describa de que se tratan los controladores de memoria, porque es importante ese control de la misma, y como es "visible" desde las aplicaciones.

TF9
10 2160065 - NIÑO RODRIGUEZ JUAN DAVID

2161635 - QUINTERO LEON DANIELA

2161636 - SANCHEZ ARCINIEGAS OMAR

2150628 - VINAZCO BUITRAGO JHOAN SEBASTIAN

Arquitectura en Cloud Computing

Aunque se ha escrito y el concepto de cloud computing es ampliamente usado en nuestro contexto, es necesario conocer las implicaciones que se tiene desde el punto de vista arquitectural (computacional) y los retos asociados. Precisamente, observando los microservicios es necesario tener en cuenta esas implicaciones que influyen en el diseño de infraestructuras y centros de recursos que soporten servicios en la nube. Teniendo en cuenta el artículo de base y contextualizando como ingenieros de sistemas (https://www.computer.org/csdl/letters/ca/2018/02/08362750.pdf ) exponga esas implicaciones desde los microservicios y discuta acerca de lo necesario para construir un centro de recursos de servicios en la nube.

TF10
11 2142612 - VARGAS CAMACHO JONATTAN STIVENT

2152890 - VARGAS TRIANA JAVIER ALFONSO

2160072 - SINUCO TIRADO OSCAR ESNEYDER

2160066 - VEGA ARRIETA JOSE SAUL

Siguientes Direcciones en Almacenamiento de Datos

Dia a dia se produce mucha información y aunque existen grandes capacidades de procesamiento, esta no logra procesarse completamente y la información para futuros usos debe almacenarse. Igual pasa con la información ya procesada, genera nuevos datos, lo cual implica que se piense en nuevas maneras de almacenar información, tanto desde el punto de vista físico como lógico. Recientemente, los físicos han propuesto nuevas alternativas de almacenamiento explorando propiedades de los materiales (https://phys.org/news/2018-06-next-generation-storage.html y https://www.osapublishing.org/oe/abstract.cfm?uri=oe-26-9-12266 ) el cual para los ingenieros de sistemas y los arquitectos computacionales plantea nuevos y dificiles retos. Teniendo en cuenta la información de base y como ingeniero de sistemas, explique de se tratan esas direcciones planetadas y que retos plantean (por ejemplo, sistema de archivos, coherencia, programabilidad, técnicas de tratamiento de datos, etc.)

TF11
Temáticas de Proyectos (1 Semestre de 2018)

No olvide ver los temas asignados en la lista posterior denominada Temas para Trabajos 2018-1. Se recomienda observa tanto los artículos como las diapositivas de los semestres anteriores realizados por sus compañeros y disponibles en este sitio.

Asignación de Grupos 2018-1

Grupo Participantes Tema para Trabajos 2018-1 Orden de Presentación Propuesto Pregunta Examen
A
2142635 - ALVAREZ AMADO ADEL FARID
2142618 - CARRIZALES DUARTE ALVARO
2130138 - CHACON LOPEZ JUAN FELIPE
T1 6:00am-6:05am Tomando del Grupo T10: Si vemos la pregunta hecha de: ¿Cuál ha sido el papel de los video juegos en torno al desarrollo de la arquitectura de hardware?, Según lo visto en el artículo y en la exposición, responda, ¿que criterios de arquitectura de computadores debo tener en cuenta a la hora de desarrollar videojuegos? Justifique su respuesta.
B
2150174 - CHIA LERZUNDY JOSE ANDRES
2152479 - ESPITIA MUÑOZ FABIAN ALBERTO
2151476 - FERNANDEZ DIAZ CRISTIAN MAURICIO
T2 6:07am - 6:12:00am Tomando del Grupo T9: Si vemos la pregunta hecha de: la competitividad en Colombia, ¿Desde el punto de vista de arquitectura de computadores que deberá tener en cuenta la UIS para mantener la supremacía en Colombia? Justifique su respuesta.
C
2130284 - HERNANDEZ ARIAS ANDRES CAMILO
2152903 - LUCENA LUNA LISETH VERONICA
2142641 - MANTILLA DIAZ LAURA JULIANA
T3 6:14am - 6:19am Tomando del Grupo T1: Si vemos la pregunta hecha de: ¿Desde el punto de vista de arquitectura de computadores, cuales son los retos tecnológicos que representan?, responda ¿Cuales son los retos como desarrolladores? Justifique su respuesta. 
D
2143696 - MANTILLA LOPEZ JUAN DAVID
2150011 - MEDINA BLANCO DIEGO FERNANDO
2152501 - MONTENEGRO MARTINEZ EDGAR ANDRES
T4 6:21am - 6:26am Tomando del Grupo T8: Si vemos la pregunta hecha de: ¿Cuales han sido los principales retos y preguntas abiertas que aún quedan, desde el punto de vista computacional?, responda ¿cuales serian esos retos desde el desarrollo de software? Justifique su respuesta.
E
2151841 - MORENO TARAZONA ALEJANDRA
2150782 - PALOMINO FLOREZ WILLIAM GIOVANY
2151215 - PAREJA FONSECA LAYONETH ENRIQUE
T5 6:28am - 6:35am Tomando del Grupo T7: Del artículo de sus compañeros, se plantea la pregunta : ¿Por qué es importante el exascale y los problemas energéticos tratados desde la computación?, responda ¿por qué es importante igualmente verlo partícularmente desde sistemas no exascale? Justifique su respuesta.
F
2142657 - PARRA BASTOS LIZETH PAOLA
2130478 - PEREA PEREZ JORGE LUIS
2150606 - PEÑA CONTRERAS HENRY IVAN
T6 6:37am - 6:42am Tomado del Grupo T2: De la pregunta: ¿Por qué se hace tanto énfasis en la crisis de identidad del HPC?, responda desde el punto de vista del desarrollador, ¿como lo afecta, dentro de la identidad como ingenieros de sistemas? Justifique su respuesta.
G
2150436 - RAMIREZ BRUJES DOUGLAS ANDRES
2152779 - RAMIREZ MUÑOZ ALEJANDRO
2151287 - RIVERA CEPEDA BRAYAN ORLANDO
T7 6:45am - 6:50am Del grupo T6: De la pregunta planteada a sus compañeros, ¿Cuales son los retos técnicos?, responda, ¿cuales son los retos del componente software? Justifique su respuesta.
H
2122079 - ROJAS CHACON DAMAR NICOLAS
2150286 - ROJAS ROBLES MARIANNE SOLANGEL
2152488 - RUIZ GARCIA LINA MARCELA
T8 6:52am - 6:57am Del Grupo T4, se plantea la pregunta: ¿Que consecuencias tecnológicas, sociales y económicas en el corto plazo ha visto cada vez que las capacidades de cómputo y almacenamiento se incrementan?, responda, ¿es relevante su formación como ingenieros hoy en dia ante una nueva realidad en la carrera o carreras relacioanadas con computación? Justifique su respuesta.
I
2130539 - TRIANA MOJICA JORGE ANDRES
2150877 - VALDIVIESO SUAREZ LUIS HERNANDO
2142627 - PEÑA HERRERA JUAN FELIPE
T9 6:59am - 7:04am Del Grupo T5, se habló de la tercera revolución industrial, ¿a que me refiero con la cuarta revolución industrial? Detalle su respuesta
J
2151843 - VALENZUELA RINCON BRAYAN CAMILO
2142626 - VEGA BORRERO BERNARDO ANDRES
T10 7:06am - 7:11am Del Grupo T3, se preguntó ¿Que retos trae a los ingenieros y científicos de computadoras este tipo de cómputo orgánico?, responda, ¿cuales son los retos a nivel de programación? Justifique su respuesta.
Temáticas de Proyectos 2018-1

Para este semestre se realizó una asignación por grupos de dos (2) y tres (3) estudiantes, de acuerdo a la tabla anterior. Cada uno de los grupos deberá realizar el trabajo asignado y seguir lo que se muestra en el numeral 4 de la sección de evaluaciones. Cada uno de los grupos partirá de al menos un articulo o enlace informativo de base dado, pero deben buscar otras fuentes para responder a las preguntas asociadas al mismo (no necesariamente en el orden dado, el orden ustedes lo dan para darle un cuerpo y un argumento a su artículo y trabajo). Recuerden que a partir del artículo de base, deben buscar nuevas fuentes de información (otros artículos, otros enlaces, etc).

Tenga en cuenta que la asignación es definitiva, todo el equipo debe trabajar y en la clase práctica del 21 de febrero de 2018, se deberá hacer un informe previo sobre como resolverán la tarea asignada. La tabla de asignación involucra igualmente el orden de presentación.

Temas para Trabajos 2018-1

  • T1: Tendencias en IA para el 2018 Cray Inc. en su grupo de discusión de expertos ha trabajado sobre la idea de como la IA transforma la tecnología. Para el 2018, ellos han predicho ciertas tendencias interesantes, que pueden verse en: https://www.cray.com/blog/artificial-intelligence-five-trends-2018/ Exponiendo cada una de estas tendencias, responda las siguientes preguntas:
    • ¿Cual, según su criterio representa la más clara para nosotros en Colombia? Justifique su respuesta
    • ¿Desde el punto de vista de arquitectura de computadores, cuales son los retos tecnológicos que representan?
    • ¿Estamos preparados como ingenieros de sistemas y como país a asumir esas tendencias? Justifique su respuesta.
  • T2: Predicciones en HPC para el 2018: HPC Wire es un sitio especializado en Computación de Alto Rendimiento que diariamente publica información acerca de cómputo avanzado y sistemas de datos, tanto a nivel académico como industrial. En la publicación: https://www.hpcwire.com/2017/12/21/five-surefire-maybe-hpc-predictions-2018/ , HPC Wire realizó unas predicciones para el 2018 en la industria y tecnología para este año. Exponiendo cada una de estas predicciones, responda las siguientes preguntas:
    • ¿ Cual de estas predicciones es la que a su criterio genera mas impacto en Colombia? Justifique su respuesta.
    • ¿Por qué se hace tanto énfasis en la crisis de identidad del HPC?
    • No ha pasado sino meses de estas predicciones. Al realizar su articulo, ¿Cual es el estado de estas predicciones?
  • T3: Electrónica Orgánica: Tras las limitaciones físicas y los requerimientos cada vez mayores en consumo de energía, rapidez, capacidad y permanencia, los científicos han venido buscando nuevas maneras de proponer cómputo. Recientemente, un nuevo paso se ha dado para generar electrónica orgánica (https://liu.se/en/news-item/jattekliv-inom-den-organiska-elektroniken) con revolucionarios resultados (http://onlinelibrary.wiley.com/doi/10.1002/adma.201704916/full) De acuerdo a este tipo de contribuciones expuestas, responda las siguientes preguntas:
    • ¿Por qué se buscan componentes orgánicos para dispositivos electrónicos?.
    • ¿La abstracción lógica cambia? Justifique su respuesta.
    • ¿Que retos trae a los ingenieros y científicos de computadoras este tipo de cómputo orgánico?
  • T4: Nuevo descubrimiento aumentaría las capacidades de memoria y procesamiento: Recientemente el Colegio de Ciencia e Ingeniería de la Universidad de Minnesota anunció un descubrimiento que afectaría las capacidades de memoria y procesamiento en sistemas computacionales (https://cse.umn.edu/news-release/new-discovery-improve-brain-like-memory-computing/) El descubrimiento, publicado en nature (https://www.nature.com/articles/s41467-017-02491-3) sin duda es revolucionario y podría genera en el corto plazo nuevamente una potencialización de las capacidades tecnológicas. De acuerdo a esto y exponiendo de que se trata este logro, responda las siguientes preguntas:
    • ¿Que hace tan importante y relevante este descubrimiento? Explique el detalle.
    • ¿Por qué se hace referencia a que las capacidades de memoria y procesamiento se acercan a las capacidades del cerebro, como principal preocupación de los investigadores en el área?. Justifique su respuesta.
    • ¿Que consecuencias tecnológicas, sociales y económicas en el corto plazo ha visto cada vez que las capacidades de cómputo y almacenamiento se incrementan?. De ejemplos.
  • T5: La Siguiente Fase en la Revolución Digital: Sin duda alguna, en los últimos cinco (5) años se ha presentado una revolución que ha replanteado no sólo el valor de la información sino también la manera como se garantiza su uso, desde las plataformas hasta los modelos de programación, más aún en lo que denominamos nube computacional (https://cacm.acm.org/magazines/2018/2/224635-the-next-phase-in-the-digital-revolution/fulltext) Observando aquellas características expuestas por expertos, acerca de la siguiente fase en esa revolución, responda las siguientes pregunta:
    • ¿A qué se debe el debate dato acerca de la productividad y como la sociedad se transforma dramáticamente? Justifique desde el punto de vista tecnológico e ingenieril su respuesta.
    • ¿Por qué lo que se considera plataforma es importante en toda esta revolución?
    • ¿Cómo es la perspectiva regional colombiana para ser actores en esa nueva fase de revolución digital? Justifique su respuesta de manera crítica.
  • T6: Perspectiva de los Sistemas Operativos Ubiquos: Los sistemas que denominamos tradicionales de cómputo van desde sistemas en la nube, dispositivos que interactuan entre ellos, entre lo que denominados Internet de las Cosas (IoT) y nuevas tecnologías emergentes que se preocupan de nuevas capacidades pero tambien de limitaciones como el consumo energético. En ese sentido, se lleva una continua y completa discusión como puede verse en: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8268011 y el papel de los sistemas operativos. Teniendo en cuenta los aspectos tratados y expuestos relacionados en el artículo de base, responda las siguientes preguntas:
    • ¿Por qué la perpsectiva definida en software (software-defined) es importante?
    • ¿Cuales son los retos técnicos?
    • Con el rápido desarrollo y despliegue de sistemas ubicuos en el mundo, ¿que retos debemos afrontar como futuros ingenieros de sistemas? De un ejemplo de una posible aplicación en algún sector productivo en Colombia (agro-industria, energía, salud)
  • T7: HPC for Energy: Exascale plantea retos tecnológicos que tradicionalmente se ven desde las arquitecturas hardware y software, pues no solo se trata de tener una electrónica mejor para poder procesar exa-datos a un costo energético eficiente, sino también que las aplicaciones se ejecuten. En ese sentido sus compañeros del semestre 2017-2 del G2, realizaron un trabajo en torno a la modernización de las aplicaciones. Precisamente, en dias pasados, un consorcio europeo en torno al interés en exascale para problemas asociados a la energía se reunió (https://www.hpcwire.com/2018/01/25/eu-brazil-energy-interests-position-exascale/) en el cual obtuvieron interesantes conclusiones en torno a los avances del proyecto (https://hpc4e.eu/). Ese consorcio esta conformado por la Unión Europea y Brazil. Observando de que se trata tanto el exascale como el proyecto HPC4E responda las siguientes preguntas:
    • ¿Cuales han sido los logros más relevantes del proyecto?
    • ¿Por qué es importante el exascale y los problemas energéticos tratados desde la computación?
    • Santander es una región de industrias energéticas, a su criterio ¿es relevante que se participe y genere proyectos similares en los cuales la computación juegue un papel interesante? Justifique su respuesta.
  • T8: AI para suplir miembros amputados: Recientemente, se ha anunciado un logro que desde el 2012 no se realizaba y era la posibilidad de realizar tareas avanzadas en miembros robotizados en personas amputadas (https://goo.gl/abMz1U) El anunció de los resultados hechos por un grupo de investigación de Georgia Tech (http://www.news.gatech.edu/2017/12/11/force-strong-amputee-controls-individual-prosthetic-fingers) abre nuevas posibilidades para que la tecnología aporte al bienestar de los seres humanos. Teniendo en cuenta lo expuesto anteriormente, responda las siguientes preguntas:
    • ¿Qué arquitectura computacional ha permitido desarrollar este tipo de logros?
    • ¿Cuales han sido los principales retos y preguntas abiertas que aún quedan, desde el punto de vista computacional?
    • ¿Como podríamos como ingenieros en Colombia, aportar a estos desarrollos, por ejemplo, para personas que han perdido sus miembros en la guerra reciente en Colombia o en accidentes de trabajo? Justifique su respuesta.
  • T9: Europa lanza proyecto de 1 billón de Euros para construir supercomputador en el 2023: La supercomputación es uno de los pilares modernos para la competitividad científica de las naciones y conglomerados económicos. En se sentido, la unión europea lanzó su proyecto de supercomputación para el 2023(https://sciencebusiness.net/news/eu-launches-eu1b-project-build-fastest-supercomputer-world-2023), en el cual le apuesta no sólo ha construir un supercomputador sino el más poderoso del mundo y cambiar el panorama observado hoy en el Top500 (https://www.top500.org/) De acuerdo a la información que recopila al respecto, responda críticamente las siguientes preguntas:
    • ¿Cuales son las principales motivaciones para Europa?
    • ¿Cómo ve a América Latina como bloque respecto a Europa, Asía, Estados Unidos de América y Canada? Justifiqué su respuesta.
    • ¿Y Colombia, es altamente competitiva o no? Justifique su respuesta.
  • T10: La investigación en Hardware en su sistema de video juegos: Recientemente, la prestigiosa revista nature publicó una interesante contribución en torno a la investigación y la ruptura que se ha generado en los sistemas de video juegos (https://www.nature.com/articles/d41586-017-08968-x) De acuerdo a las ideas expuestas allí, responda las siguientes preguntas:
    • ¿Por qué los sensores han sido fundamentales? Justifique su respuesta.
    • ¿Cuál ha sido el papel de los video juegos en torno al desarrollo de la arquitectura de hardware?
    • No como jugadores, sino como desarrolladores tanto de video juegos como de sistemas completos, ¿como ve al país? (Recuerde, debe documentarse muy bien y buscar información al respecto).
Trabajos 2017-2
  • G1: El Problema de la Memoria en Arquitecturas computacionales en la Era PostMoore (Artículo , Diapositivas): Actualmente nos encontramos ante una disrupción tecnológica en computación, en la cual, por las limitaciones físicas, económicas y energéticas, la ley de Moore no se aplica más en computación y los fabricantes e investigadores están desarrollando lo que es las arquitecturas computacionales en la era post-moore. Existen muchos retos que se plantean, entre ellos el uso de arquitecturas heterogeneas para acelerar procesamiento a un bajo consumo energético relativo, pero cada reto que se busca tratar genera otros tantos, como los problemas relacionados con la memoria. En el artículo Heterogeneous Computing Meets Near-Memory Acceleration and High-Level Synthesis in the Post-Moore Era muestra como se trata el reto para acelerar la memoria mas cercana al procesamiento en arquitecturas heterogéneas.
    • ¿Dé que se trata efectivamente la Era Post-Moore en arquitectura computacional?
    • Describa de que se trata el reto que estan solucionado los autores del mismo, y cuales son sus principales logros.
    • ¿Otras personas o grupos de investigación han tratado el problema o no? Si es asi, cual es el aporte que dan los autores.
    • ¿Cuales nuevas preguntas y retos surgen de la propuesta de los autores del articulo dado?
    • Como ingenieros de sistemas, ¿como los afecta este tipo de problemáticas?. Sea concreto y puede dar ejemplos.
  • G2: Modernización de las Aplicaciones en la Era Exascale (Artículo , Diapositivas):'Exascale plantea retos tecnológicos que tradicionalmente se ven desde las arquitecturas hardware y software, pues no solo se trata de tener una electrónica mejor para poder procesar exa-datos a un costo energético eficiente, sino también que las aplicaciones se ejecuten. En ese sentido, se han desarrollado grupos y centros especializados para tratar problemáticas asociadas, como los Centros de Excelencia (o COE de sus siglas en inglés). En el artículo http://ieeexplore.ieee.org/document/8024142/ Application Modernization for the Exascale Era introduce otros tres siguientes, en los cuales se trata precisamente de como un COE generado trata ese problema de la modernización de las aplicaciones, teniendo en cuenta aspectos importantes del co-diseño hasta aplicaciones. Uno de los tres articulos siguientes denominado: Application Modernization at LLNL and the Sierra Center of Excellence trata mas en detalle la acción de un COE.
    • ¿Por qué y como el exascale afecta las aplicaciones?
    • ¿Por qué es importante tratar la modernización de las aplicaciones? ¿Cuales son los principales retos que se encuentran?. Recuerden desde el Exascale.
    • ¿Por qué es importante los COE?
    • Una de las aplicaciones visibles y de alto impacto desarrollado por el COE en mención puede verse en Toward Exascale Earthquake Ground Motion Simulations for Near-Fault Engineering Analysis de que se trata y como desde la ingenierí de sistemas e informática y la computación se trata este tipo de problemas? Recuerde, desde el punto de vista de arquitectura de computadores (hardware/software)
    • ¿Como se atacarían desde la EISI problemas como el anteriormente expuesto? ¿Es importante hacerlo para Santander y el país?
  • G3: Computación Cuántica (Artículo, Diapositivas):'Desde la ciencia ficción hasta en conversaciones de cafetería se habla de la computación cuántica, el cual, a pesar de ser muy experimental aun, es un hecho que algunos grupos de investigación y empresas le apuestan a un desarrollo a futuro, generan igualmente nuevos retos y resolviendo otros. En el articulo The Quantum Future of Computation los autores tratan de que se trata ese "futuro cuántico de la computación" (Igualmente puede ver en youtube en la charla de Matthias Troyer con el mismo nombre).
    • ¿Dé qué se trata la computación cuántica? Recuerde, desde el punto de vista de arquitectura (hardware/software).
    • ¿De que se trata la física cuántica?¿Porqué entonces de computadores cuánticos?
    • ¿Qué pasa con las aplicaciones y la arquitectura de ellas (arquitectura software)? ¿Como se compilan, ejecutan y trazan (ver su desempeño)?
    • Si la computación cuántica se desplegara inmediatamente, ¿Cuales serian las implicaciones sociales, económicas e industriales?
    • ¿Como futuro ingeniero, se cree listo para asumir en rol en un mundo con computación cuántica? Justifique su respuesta.
  • G4: Computación Molecular (Artículo , Diapositivas): Los científicos en computación, andan trabajando desde hace años en resolver los diferentes retos (bajo consumo de energía, aumentar capacidades, programabilidad, etc.) proponiendo nuevos paradigmas y arquitecturas computacionales, cada vez menos convencionales. Precisamente, como se observa en Embodied Molecular Computation: Potential and Challenges se plantea un nuevo reto, para nada convencional, desde las posibilidades moleculares de la materia para hacer computación.
    • ¿De qué se trata la computación molecular? ¿Por qué aparece el término embodied (incorporada)?
    • ¿Esta de acuerdo que los procesos biológicos pueden entenderse como programas? Justifiqué su respuesta.
    • ¿Que retos, cambios de paradigma (a nivel de arquitectura, representación, programación, etc) y cambios trae consigo la computación molecular y en este caso molecular incorporada (o embebida)?
    • Si la computación molecular see desplegara inmediatamente, ¿Cuales serian las implicaciones sociales, económicas e industriales?
    • Como futuro ingeniero, ¿cree que con los conocimientos actuales que tiene como estudiante, esta listo para afrontar un mundo con computación molecular (y molecular embebida?. Justifique su respuesta.
  • G5: Nuevos Paradigmas de Interacción Hombre -Máquina (Artículo , Diapositivas): El desarrollo de arquitecturas computacionales que permitan la interacción hombre-máquina desde sinergias corticales para permitir un control cerebral de dichas arquitecturas es un reto que genera cada vez mas preguntas, ante nuevos avances logrados. En el artículo Cortically Coupled Computing: A New Paradigm for Synergistic Human-Machine Interaction se presenta un nuevo paradigma pensando en el acoplamiento precisamente en el acoplamiento cortical.
    • ¿De qué se trata la interacción cerebro-computador y porque involucra cada vez mas nuevos retos?
    • Arquitecturalmente (computacionalmente), ¿como podría explicarse un sistema cerebro-computador?
    • ¿Cual es el rol que juega la inteligencia artificial en todo esto?
    • En términos de aplicaciones, ¿cuales son los retos tanto en el desarrollo como en la concepción de aplicaciones del "mundo real"?
    • Dé que se trata IEEE Brain Initiative y ¿Como se podría participar desde la UIS?
  • G6: Computación en Tiempo Real sobre Procesadores Multi-núcleos(Artículo , Diapositivas): El uso de múltiples núcleos en procesadores han permitido sobre diferentes arquitecturas computacionales, garantizar alto rendimiento y nuevos usos, pero también generan nuevos retos como la misma gestión de la memoria. En el artículo Real-Time Computing on Multicore Processors presenta una propuesta para el uso de procesadores multi-núcleos para computación en tiempo real, usada en aviónica.
    • ¿Cuales son los principales retos y problemas a los que se enfrenta el uso de procesadores de multiples núcleos para sistemas de computación de tiempo real?
    • ¿Por qué se hace tanto énfasis en la interferencia entre núcleos?
    • A nivel de aplicaciones, ¿Cuales son los retos?
    • ¿Por qué es importante estimar los peores casos en el rendimiento de estos sistemas (y de cualquier sistema)?
    • ¿Que campos de aplicación sociales, industriales y académicos podría tener el uso de sistemas de procesamiento multinúcleo para tiempo real en el entorno cercano? (Universidad, Bucaramanga, Santander, Colombia). De ejemplos.
  • G7: ¿La Ley de Moore ha muerto? (Artículo , Diapositivas): La Ley de Moore, propuesta en 1965 se ha cumplido de una manera extraordinaria hasta hace un par de décadas cuando las limitaciones físicas y el advenimiento de nuevas tecnologías generaron una disrupción tecnológica que hace que se comience a visualizar una era post-Moore. Sin embargo, algunos investigadores dicen que el anuncio de la muerte de la Ley de Moore es exagerado. En el artículo Exponential Laws of Computing Growth y en el video trata precisamente acerca de ese crecimiento computacional exponencial y las implicaciones que tiene no solo en como entendemos y usamos la tecnología sino también como la vemos a futuro.
    • ¿Como podría entender la ley de Moore no solo a nivel de los transistores (chips) sino también a nivel de procesos, hilos y aplicaciones?.
    • ¿De que se trata la ley de Rock y por qué es importante?
    • ¿Qué rol tiene el paralelismo en todo esto?
    • ¿Qué ha pasado con el desarrollo de aplicaciones en la era Moore?
    • El crecimiento exponencial computacional plantea retos complejos. ¿Cuales son esos retos como ingeniero de sistemas y como se ubica la Escuela de Ingenieria de Sistemas e Informática de la Universidad Industrial de Santander, para atacar esos retos?
  • G8: Computación Heterogénea (Artículo , Diapositivas): Para garantizar máximo desempeño aprovechando las características y propiedades de tecnologías especificas, se han propuesto arquitecturas computacionales completamente híbridas y heterogéneas, creando configuraciones cada vez mas novedosas, complejas y con un costo económico menor, pero que plantean nuevos retos. En el video y en el artículo Heterogeneous computing: here to stay se presenta lo que es hoy la computación heterogénea y como debe entenderse, desde un punto de vista computacional, haciendo enfásis en los retos que plantea.
    • ¿Qué es la computación heterogénea?
    • ¿Cuales son los retos en hardware y en software? De ejemplos.
    • La UIS, desde Supercomputación y Cálculo Científico (SC3UIS) comenzó a innovar hace cinco (5) años con computación heterogénea, inicialmente con el codiseño y cointegración de GUANE-1 (GpUAdvanced eNvironmEnt - 1) que es un computador heterogéneo. ¿Qué lo hace tan especial y heterogéneo/híbrido?
    • ¿Qué es lo bueno y lo malo de esa computación heterogénea?
    • Como la UIS desde la Escuela de Ingenieria de Sistemas e Informática ha respondido a la computación heterogénea? (cursos, proyectos, grupos de investigación, interés de los profesores, estudiantes... etc.)
Artículos de los Grupos del Curso del Semestre 1-2016

Nota importante: Para efectos de la evaluación, al grupo que le correspondió el artículo del Grupo 1, como estos trabajaron finalmente separadamente, escojan alguna de las dos versiones, indicando en la evaluación, que versión escogieron.

Artículos de los Grupos del Curso del Semestre 2-2016


Asignaciones y Temáticas de Proyectos (2 Semestre 2022)


ESCUELA: 6570 - ESCUELA DE ING.DE SISTEMAS                                   CURSO GRUPO TRABAJO - Artículo Técnico TEMATICA DE PROYECTO
CODIGO ESTUDIANTE
2191965 ACUÑA VARGAS ANDERSON YESETH A1 1 Evaluación de Rendimiento de Lenguajes de Programación sobre Linux usando Jacobi
2182786 BALLESTEROS VESGA DANIEL FELIPE
2200196 CAÑATE VELASCO DANIEL JAIR
2190061 CHACON CAMACHO JULIAN DAVID
2161594 CORREA PICO MAXIMILIANO
2191974 CRUZ RUEDA JOHAN SEBASTIAN 2 Evaluación de Rendimiento de Compiladores sobre Linux usando Jacobi
2182040 CUJIA REYES ADRIANA MARCELA
2200143 DAZA MENESES GUILLERMO ANDRES
2201494 FLOREZ DIAZ KEVIN ANDRES
2191940 FLOREZ TOLOSA ESTEBAN DAVID
2170238 GAITAN HERNANDEZ JULIAN ANDRES
2191918 GALLARDO ROBLES KEVIN ANDRES 3 Evaluación de Rendimiento de Ejecución en Paralelo y Secuencial usando Jacobi
2200165 GONZALEZ FLORES SANTIAGO
2190197 GONZALEZ ROMERO TOMAS GIOVANNY
2181932 GONZALEZ SANCHEZ DANIEL EDUARDO
2200184 GUTIERREZ BENAVIDES CARLOS ANDRES
2191919 HERNANDEZ CAICEDO JHON ALEXANDER 4 Evaluación de Rendimiento de Lenguajes de Programación Compilados y Lenguajes interpretados usando Jacobi
2191925 HERNANDEZ RAMIREZ FABIAN ERNESTO
2201776 HERNANDEZ SUAREZ LEVIR HELADIO
2201095 LEAL CASANOVA SANTIAGO
2200162 LOPEZ CAMACHO DIEGO ALEJANDRO
2201710 LOPEZ TARAZONA RICARDO ANDRES
2191913 MORA SALCEDO ESNEYDER 5 Evaluación de Rendimiento de Lenguajes de Programación sobre MS-Windows usando Jacobi
2191931 MORANTES VERGARA JUAN DAVID
2200146 NITOLA RODRIGUEZ MARCOS DUVAN
2191968 NIÑO VILLAMIL IVAN LEONARDO
2191947 NUÑEZ HERRERA ALEJANDRO
2200172 PEREZ BOLIVAR DANIEL MAURICIO 6 Evaluación de Rendimiento de Compiladores sobre MS-Windows usando Jacobi
2190050 PLATA RODRIGUEZ MIGUEL ANGEL
2180445 QUINTERO JAIMES SANTIAGO
2192910 RAMIREZ ARDILA JESUS FERNANDO
2200185 RAMIREZ SERNA OSCAR ANDRES
2200151 REY LAMUS DIEGO ANDRES 7 Evaluación de Rendimiento de Distribuciones Linux
2191952 ROJAS HERNANDEZ CESAR ENRIQUE
2191970 TAFUR CAMPO CRISTIAN DAVID
2191946 URIBE RODRIGUEZ BRAYAN FERNEY
2191960 VILLAMIZAR BOHADA JESUS DARIO
2191795 ALVAREZ SANCHEZ JUAN DIEGO A2 8 Evaluación de Rendimiento de Lenguajes de Programación sobre Linux usando el cálculo de Pi con el Método de MonteCarlo
2191964 ANAYA HERRERA KEVIN SEBASTIAN
2191963 ANGARITA MENDOZA FAIBER STIVEN
2191444 ARGUELLO GUTIERREZ PAULA ANDREA
2191927 ARIAS MANRIQUE RONALD ALEXIS
2191920 AVILA CHACON RAMIRO SANTIAGO
2200182 BERMUDEZ RODRIGUEZ JUAN EDUARDO 9 Evaluación de Rendimiento de Compiladores sobre Linux usando el cálculo de Pi con el Método de Montecarlo
2192507 BOHORQUEZ BOHORQUEZ YULY STEFANNY
2201527 BOLAÑOS CRUZ SANTIAGO ANDRES
2162102 CASTILLO ORDUZ JUAN ESTEBAN
2182032 CEPEDA ORTIZ FELIPE ANDRES
2200147 CHAIN SANTOS SANTIAGO ANDRES 10 Evaluación de Rendimiento de Lenguajes de Programación sobre Windows usando el cálculo de Pi con el Método de Montecarlo


2200150 DUEÑAS TORRES DAVID
2183184 ESPINOSA ESPINOSA JUAN SEBASTIAN
2183266 GUERRERO ORTEGA JUAN CAMILO
2201495 HERRERA POVEDA MANUEL ALEJANDRO
2200189 MALAGON RUIZ CRISTIAN ALEXANDER 11 Evaluación de Rendimiento de Compiladores sobre Windows usando el cálculo de PI con el Método de Montecarlo
2200157 MARIN BARRAGAN JUAN DAVID
2191951 MENDEZ RIVERA LAURA VANESSA
2200161 MOLINA GARZON MIGUEL ANGEL
2200178 MORANTES DUARTE DAVID SANTIAGO
2201433 OLIVOS RODRIGUEZ YEFFERSON 12 Evaluación de Rendimiento usando Linpack
2141845 ORTIZ MARTINEZ EDUAR ANDRES
2143359 PABON MOJICA JUAN SEBASTIAN
2200170 PATIÑO PEDRAZA JUAN DAVID
2162110 PEREZ CARMONA OSCAR ANDRES
2200183 PEREZ PEREZ NELSON FABIAN
2172336 PEÑALOZA TORRES CARLOS DANIEL 13 Evaluación de Rendimiento usando HPL-LinPack
2183076 RESTREPO GOMEZ JEICOB GILMAR
2200190 REY RUEDA CRISTHIAN CAMILO
2200141 REYES GUEVARA GABRIEL FERNANDO
2200168 RODRIGUEZ CALA LAURA
2191419 RODRIGUEZ VARGAS ALEJANDRO
2191933 SUAREZ GALVIS SEBASTIAN CAMILO 14 Evaluación de Rendimiento de Ejecución en Paralelo y Secuencial usando el Método de Montecarlo para calcular Pi
2182043 SUAREZ JAIMES JUAN DANIEL
2192532 TRISTANCHO CORZO CRISTHIAN IVAN
2200134 VALENCIA VANEGAS YEFERSON
2191950 VILLAMIZAR ANAYA JULIAN MAURICIO
Listado de Proyectos 2-2022:
  • Proyecto 1 : Evaluación de Rendimiento de Lenguajes de Programación sobre Linux usando Jacobi

Una compañía de desarrollo, que principalmente realiza software libre para el sector agrícola, requiere una consultoría para evaluar el rendimiento de lenguajes de programación al ejecutarse sobre plataformas Linux en computadores de escritorio, estaciones de trabajo o servidores de baja gama, compilándose principalmente en sistemas basados en gcc (https://gcc.gnu.org/).

Los contratadores usan el método de Jacobi que se encuentra en este sitio: https://github.com/carlosjaimebh/SomeExamples y desean evaluar el rendimiento sobre dos máquinas diferentes para C, C++, Java  y Python, que les proveerán los contratadores*.

  • Deberán ponerse de acuerdo con el equipo de SC3UIS para realizar el acceso a dos máquinas linux diferentes. Enviar un correo con copia al profesor a sc3.operaciones(no-sp@m)uis.edu.co

1.     Evaluar el rendimiento sobre esas máquinas dadas, mostrando cual es el mejor lenguaje para ese problema en cada máquina respectiva.

a.     Recuerde que debe seleccionar las métricas y presentar los resultados de esa evaluación.

b.     Use al menos dos (2) opciones de optimización al compilar

c.     Extraiga el pseudocódigo y diagrama de flujo.

d.     Bonus: Puede realizar el mismo método con modificaciones en los códigos, pero debe mencionar en que mejoró o en que afecta esa modificación

2.     Responda y explique las siguientes preguntas:

a.     ¿Qué observa al hacer las pruebas comparando los procesadores?

b.     ¿Qué observa al hacer las pruebas comparando las memorias RAM?

c.     Bonus: Investigue y agregue una discusión sobre los efectos de la memoria y el procesador en el desempeño de un programa en un lenguaje especifico.

  • Proyecto 2 : Evaluación de Rendimiento de Compiladores sobre Linux usando Jacobi

Una compañía de desarrollo, que principalmente realiza software libre para el sector energético, requiere una consultoría para evaluar el rendimiento de compiladores de programación al ejecutarse sobre plataformas Linux en computadores de escritorio, estaciones de trabajo o servidores de baja gama.

Los contratadores usan el método de Jacobi que se encuentra en este sitio: https://github.com/carlosjaimebh/SomeExamples y desean evaluar el rendimiento sobre dos máquinas diferentes para C y  C++, que les proveerán los contratadores*.

Los compiladores a analizar son: CLANG, LLVM, GCC e Intel

*Deberán ponerse de acuerdo con el equipo de SC3UIS para realizar el acceso a dos máquinas linux diferentes. Enviar un correo con copia al profesor a sc3.operaciones@uis.edu.co

1.     Evaluar el rendimiento sobre esas máquinas dadas, mostrando cual es el mejor compilador en cada máquina respectiva.

a.     Recuerde que debe mostrar los sistemas de prueba (descripción de la arquitectura del sistema, incluyendo arquitectura computacional, descripción del sistema operativo usado, entre otras características arquitecturales relevantes).

b.     Recuerde que debe seleccionar las métricas y presentar los resultados de esa evaluación.

c.     Use al menos tres (3) opciones de optimización al compilar

d.     Extraiga el pseudocódigo y diagrama de flujo.

e.     Bonus: Puede realizar el mismo método con modificaciones en los códigos, pero debe mencionar en que mejoró o en que afecta esa modificación

2.     Responda y explique las siguientes preguntas:

a.     ¿Qué observa al hacer las pruebas comparando los procesadores?

b.     ¿Qué observa al hacer las pruebas comparando las memorias RAM?

c.     Bonus: Investigue y agregue una discusión sobre los efectos de la memoria y el procesador en el desempeño del compilador sobre plataformas en Linux.

  • Proyecto 3: Evaluación de Rendimiento de Ejecución en Paralelo y Secuencial usando Jacobi (para la realización de este proyecto deberá apoyarse en el equipo técnico de SC3UIS* y utilizará el supercomputador GUANE-1)

Una compañía de desarrollo, que principalmente realiza software libre para inteligencia artificial, requiere una consultoría para evaluar el rendimiento sobre plataformas especificas en paralelo y en secuencial, que se ejecutaran en plataformas sobre Linux. Para realizar la prueba, en una plataforma especifica que le dará la empresa, le propone ejecutar (4) cuatro versiones del método de Jacobi, escrito en C. y que se encuentra disponible en: https://people.sc.fsu.edu/~jburkardt/c_src/jacobi/jacobi.html , la versión en C sin paralelizar, https://people.sc.fsu.edu/~jburkardt/c_src/jacobi_openmp_test/jacobi_openmp_test.html la versión en C paralelizada con OpenMP , https://www.mcs.anl.gov/research/projects/mpi/tutorial/mpiexmpl/src/jacobi/C/main.html la versión  en C paralelizada en MPI y finalmente en https://github.com/MMichel/CudaJacobi la versión paralelizada en CUDA. Nota importante: Todas las versiones tienen similitudes, pero no son completamente iguales.

*Deberán ponerse de acuerdo con el equipo de SC3UIS para realizar el acceso a dos máquinas linux diferentes. Enviar un correo con copia al profesor a sc3.operaciones@uis.edu.co

1.     Evaluar el rendimiento sobre estas opciones, explicando en qué casos es mejor cada una de ellas, al ejecutarse.

a.     Recuerde que debe mostrar los sistemas de prueba (descripción de la arquitectura del sistema, incluyendo arquitectura computacional, descripción del sistema operativo usado, entre otras características arquitecturales relevantes).

b.     Recuerde que debe seleccionar las métricas y presentar los resultados de esa evaluación.

c.     Use al menos dos (2) opciones de optimización al compilar en la versión secuencial.

d.     Extraiga el pseudocódigo y diagrama de flujo.

e.     Bonus: Puede realizar el mismo método con modificaciones en los códigos, pero debe mencionar en que mejoró o en que afecta esa modificación

2.     Responda y explique las siguientes preguntas:

a.     ¿Cuál es la principal diferencia, en términos de arquitectura de computadores durante la ejecución, de cada uno de los paradigmas de programación utilizados?

b.     Bonus: Investigue y agregue una discusión sobre los efectos de la comunicación cuando se comienza a escalar un problema para que se ejecute.

  • Proyecto 4: Evaluación de Rendimiento de Lenguajes de Programación Compilados y Lenguajes interpretados usando Jacobi

Un grupo de investigación  de la Universidad Industrial de Santander, requiere una consultoría para evaluar el rendimiento de lenguajes de programación e interpretadores, usando el método de jacobi que se encuentra en: https://people.sc.fsu.edu/~jburkardt/c_src/jacobi/jacobi.html independiente del sistema operativo, el cual deja a ustedes como consultores que escojan cual, sobre un computador de escritorio de los que normalmente tienen los estudiantes o los grupos de investigación o un computador portátil. Las pruebas de los códigos son en los lenguajes C, C++, Fortran90 y los interpretadores de Matlab, Python, Octave y R.

1.     Evaluar el rendimiento sobre, mostrando cual es el mejor lenguaje o interpretador para ese problema justificando la respuesta.

a.     Recuerde que debe mostrar el sistema de prueba (descripción de la arquitectura del sistema, incluyendo arquitectura computacional, descripción del sistema operativo usado, entre otras características arquitecturales relevantes).

b.     Recuerde que debe seleccionar las métricas y presentar los resultados de esa evaluación y por supuesto pensar en mostrar comparaciones gráficas

c.     Use al menos dos (2) opciones de optimización al compilar.

d.     Extraiga el pseudocódigo y diagrama de flujo.

e.     Bonus: Puede realizar el mismo método con modificaciones en los códigos, pero debe mencionar en que mejoró o en que afecta esa modificación

2. Responda y explique las siguientes preguntas:

a.     ¿Cuál es la diferencia principal entre un lenguaje y un interpretador?

b.     ¿Entre los interpretadores, cual considera el más robusto?

c.     Bonus: Investigue en que lenguaje de programación están escritos cada uno de los interpretadores.

Para este proyecto pueden usar sus equipos personales y/o de la universidad. No olvide explicar la arquitectura del sistema de prueba.

  • Proyecto 5 : Evaluación de Rendimiento de Lenguajes de Programación sobre Windows usando Jacobi

Una compañía de desarrollo, que principalmente realiza software libre para el sector médico, requiere una consultoría para evaluar el rendimiento de lenguajes de programación al ejecutarse sobre plataformas Windows en computadores de escritorio, compilándose sistemas open source (tipo dev) sobre Microsoft Windows.

Los contratadores usan el método de Jacobi que se encuentra en este sitio: https://github.com/carlosjaimebh/SomeExamples y desean evaluar el rendimiento sobre dos máquinas diferentes para C, C++, Java y Python, que les proveerán los contratadores.

1.     Evaluar el rendimiento sobre esas máquinas dadas, mostrando cual es el mejor lenguaje para ese problema en cada máquina respectiva.

a.     Recuerde que debe mostrar los sistemas de prueba (descripción de la arquitectura del sistema, incluyendo arquitectura computacional, descripción del sistema operativo usado, entre otras características arquitecturales relevantes).

b.     Recuerde que debe seleccionar las métricas y presentar los resultados de esa evaluación.

c.     Use al menos dos (2) opciones de optimización al compilar.

d.     Extraiga el pseudocódigo y diagrama de flujo.

e.     Bonus: Puede realizar el mismo método con modificaciones en los códigos, pero debe mencionar en que mejoró o en que afecta esa modificación

2.     Responda y explique las siguientes preguntas:

a.     ¿Qué observa al hacer las pruebas comparando los procesadores?

b.     ¿Qué observa al hacer las pruebas comparando las memorias RAM?

c.     Bonus: Investigue y agregue una discusión sobre los efectos de la memoria y el procesador en el desempeño del compilador sobre plataformas en Windows.

Para este proyecto pueden usar sus equipos personales y/o de la universidad. No olvide explicar la arquitectura del sistema de prueba.

  • Proyecto 6: Evaluación de Rendimiento de Compiladores sobre Windows usando Jacobi

Una compañía de desarrollo, que principalmente realiza software libre para el sector de servicios de comunicaciones, requiere una consultoría para evaluar el rendimiento de compiladores de programación al ejecutarse sobre plataformas Windows en computadores de escritorio, estaciones de trabajo o servidores de baja gama .

Los contratadores usan el método de Jacobi que se encuentra en este sitio: https://github.com/carlosjaimebh/SomeExamples y desean evaluar el rendimiento sobre dos máquinas diferentes para C y C++, que les proveerán los contratadores.

Los compiladores para analizar son: Dev C/C++, Microsoft Visual C/C++, GCC, Intel

1.     Evaluar el rendimiento sobre esas máquinas dadas, mostrando cual es el mejor compilador en cada máquina respectiva.

a.     Recuerde que debe mostrar los sistemas de prueba (descripción de la arquitectura del sistema, incluyendo arquitectura computacional, descripción del sistema operativo usado, entre otras características arquitecturales relevantes).

b.     Recuerde que debe seleccionar las métricas y presentar los resultados de esa evaluación.

c.     Use al menos tres (3) opciones de optimización al compilar

d.     Extraiga el pseudocódigo y diagrama de flujo.

e.     Bonus: Puede realizar el mismo método con modificaciones en los códigos, pero debe mencionar en que mejoró o en que afecta esa modificación

2.     Responda y explique las siguientes preguntas:

a.     ¿Qué observa al hacer las pruebas comparando los procesadores?

b.     ¿Qué observa al hacer las pruebas comparando las memorias RAM?

c.     Bonus: Investigue y agregue una discusión sobre los efectos de la memoria y el procesador en el desempeño del compilador sobre plataformas en Microsoft Windows*.

*Para este proyecto pueden usar sus equipos personales y/o de la universidad. No olvide explicar la arquitectura del sistema de prueba.

  • Proyecto 7: Evaluación de Rendimiento de Distribuciones Linux (para la realización de este proyecto deberá apoyarse en el equipo técnico de SC3UIS*)

Una compañía que ofrece servicios en la nube, que principalmente ofrece servicios en nubes locales para medianas empresas, usando principalmente software libre, requiere una consultoría para evaluar el rendimiento de distribuciones Linux sobre servidores de media y baja gama. Para ello, los contrata y les pide una evaluación de cuatro (4) distribuciones populares que son: Debian, Ubuntu, CentOS y Mint. La empresa le proporcionará la máquina para realizar las respectivas pruebas.

1.     Evaluar el rendimiento sobre esas máquinas dadas, mostrando cual es la distribución mas recomendable en cada máquina respectiva.

a.     Recuerde que debe describir arquitecturalmente el sistema de prueba (descripción de la arquitectura del sistema, incluyendo arquitectura computacional, componentes, características relevantes de cada uno de los sistemas operativos, entre otras características arquitecturales relevantes).

b.     Recuerde que debe seleccionar las métricas y presentar los resultados de esa evaluación. Las métricas de desempeño del Sistema Operativo están relacionadas al desempeño del disco, la memoria, el procesador y la red. Algunas de las métricas más importantes de desempeño del sistema son la memoria disponible, los bytes promedio por lectura/escritura, tiempo promedio de lectura/escritura, lecturas/escrituras de disco por segundo, utilización de red, entradas en páginas por segundo, páginas por segundo, tamaño de la cola del procesador y uso del procesador, entre otras.

c.     Tenga en cuenta diferentes aspectos al realizar la prueba, por ejemplo: facilidad y tiempo de instalación, soporte de lenguajes de programación y compiladores, facilidad de uso, interoperabilidad con diferentes infraestructuras hardware, soporte, etc.)

d.     Bonus: Realice una prueba adicional con Red Hat

2.     Responda y explique las siguientes preguntas:

a.     ¿Qué observa al hacer las pruebas comparando los procesadores?

b.     ¿Qué observa al hacer las pruebas comparando las memorias RAM?

c.     Bonus: Investigue y agregue una discusión sobre los efectos de la memoria y el procesador en el desempeño del sistema operativo.

*Deberán ponerse de acuerdo con el equipo de SC3UIS para realizar el acceso a dos máquinas linux diferentes. Enviar un correo con copia al profesor a sc3.operaciones@uis.edu.co

  • Proyecto 8: Evaluación de Rendimiento de Lenguajes de Programación sobre Linux usando el cálculo de Pi con el Método de MonteCarlo

Una compañía de desarrollo, que principalmente realiza software libre para el sector educativo, requiere una consultoría para evaluar el rendimiento de lenguajes de programación al ejecutarse sobre plataformas Linux en computadores de escritorio, estaciones de trabajo o servidores de baja gama, compilándose principalmente en sistemas basados en gcc (https://gcc.gnu.org/).

Los contratadores usan el método de Montecarlo para calcular Pi que se encuentra en este sitio: https://www.geeksforgeeks.org/estimating-value-pi-using-monte-carlo/ y desean evaluar el rendimiento sobre dos máquinas diferentes para C#, C++, Java  y Python, que les proveerán los que los han contratado*.

1.     Evaluar el rendimiento sobre esas máquinas dadas, mostrando cual es el mejor lenguaje para ese problema en cada máquina respectiva.

a.     Recuerde que debe seleccionar las métricas y presentar los resultados de esa evaluación.

b.     Use al menos dos (2) opciones de optimización al compilar

c.     Extraiga el pseudocódigo y diagrama de flujo.

d.     Bonus: Realizar la versión en C y hacer comparaciones.

2.     Responda y explique las siguientes preguntas:

a.     ¿Qué observa al hacer las pruebas comparando los procesadores?

b.     ¿Qué observa al hacer las pruebas comparando las memorias RAM?

c.     Bonus: Investigue y agregue una discusión el uso de otro método diferente al de Montecarlo para calcular PI y que tan bueno (o malo) es comparado con el de Montecarlo.

*Deberán ponerse de acuerdo con el equipo de SC3UIS para realizar el acceso a dos máquinas linux diferentes. Enviar un correo con copia al profesor a sc3.operaciones@uis.edu.co, sin embargo si desea hacerlo en una máquina propia, puede hacerlo sin olvidar explicar las características arquitecturales.

  • Proyecto 9: Evaluación de Rendimiento de Compiladores sobre Linux usando el cálculo de Pi con el Método de Montecarlo

Una compañía de desarrollo, que principalmente realiza software libre para el sector de manufactura, requiere una consultoría para evaluar el rendimiento de lenguajes de programación al ejecutarse sobre plataformas Linux en computadores de escritorio, estaciones de trabajo o servidores de baja gama, compilándose principalmente en sistemas basados en gcc (https://gcc.gnu.org/).

Los contratadores usan el método de Montecarlo para calcular Pi que se encuentra en este sitio: https://www.geeksforgeeks.org/estimating-value-pi-using-monte-carlo/ y desean evaluar el rendimiento sobre dos máquinas diferentes para C#, C++, Java  y Python, que les proveerán los empresarios que los han contratado*.

Los compiladores a analizar son: CLANG, LLVM, GCC e Intel

1.     Evaluar el rendimiento sobre esas máquinas dadas, mostrando cual es el mejor compilador en cada máquina respectiva.

a.     Recuerde que debe mostrar los sistemas de prueba (descripción de la arquitectura del sistema, incluyendo arquitectura computacional, descripción del sistema operativo usado, entre otras características arquitecturales relevantes).

b.     Recuerde que debe seleccionar las métricas y presentar los resultados de esa evaluación.

c.     Use al menos tres (3) opciones de optimización al compilar

d.     Extraiga el pseudocódigo y diagrama de flujo.

e.     Bonus: Realizar la versión en C y hacer comparaciones

2.     Responda y explique las siguientes preguntas:

a.     ¿Qué observa al hacer las pruebas comparando los procesadores?

b.     ¿Qué observa al hacer las pruebas comparando las memorias RAM?

c.     Bonus: Investigue, documéntese y agregue una discusión sobre los efectos del compilador seleccionado de acuerdo al desempeño deseado, para implementaciones industriales.

*Deberán ponerse de acuerdo con el equipo de SC3UIS para realizar el acceso a dos máquinas linux diferentes. Enviar un correo con copia al profesor a sc3.operaciones@uis.edu.co, sin embargo si desea hacerlo en una máquina propia, puede hacerlo sin olvidar explicar las características arquitecturales.

  • Proyecto 10: Evaluación de Rendimiento de Lenguajes de Programación sobre Windows usando el cálculo de Pi con el Método de Montecarlo

Una compañía de desarrollo, que principalmente realiza software libre para el sector médico, requiere una consultoría para evaluar el rendimiento de lenguajes de programación al ejecutarse sobre plataformas Windows en computadores de escritorio, compilándose sistemas open source (tipo dev) sobre Microsoft Windows.

Los contratadores usan el método de Montecarlo para calcular Pi que se encuentra en este sitio: https://www.geeksforgeeks.org/estimating-value-pi-using-monte-carlo/ y desean evaluar el rendimiento sobre dos máquinas diferentes para C#, C++, Java  y Python, que les proveerán ellos*.

1.     Evaluar el rendimiento sobre esas máquinas dadas, mostrando cual es el mejor compilador en cada máquina respectiva.

a.     Recuerde que debe mostrar los sistemas de prueba (descripción de la arquitectura del sistema, incluyendo arquitectura computacional, descripción del sistema operativo usado, entre otras características arquitecturales relevantes).

b.     Recuerde que debe seleccionar las métricas y presentar los resultados de esa evaluación.

c.     Use al menos tres (3) opciones de optimización al compilar

d.     Extraiga el pseudocódigo y diagrama de flujo.

e.     Bonus: Realizar la versión en C y hacer comparaciones.

2.     Responda y explique las siguientes preguntas:

a.     ¿Qué observa al hacer las pruebas comparando los procesadores?

b.     ¿Qué observa al hacer las pruebas comparando las memorias RAM?

c.     Bonus: Realice una prueba de rendimiento de alguna de las versiones ejecutándola sobre Linux, explicando las principales diferencias que observa en ese rendimiento.

*Para este proyecto pueden usar sus equipos personales y/o de la universidad. No olvide explicar la arquitectura del sistema de prueba.

  • Proyecto 11: Evaluación de Rendimiento de Compiladores sobre Windows usando el cálculo de PI con el Método de Montecarlo

Una compañía de desarrollo, que principalmente realiza software libre para el sector de servicios de entretenimiento, requiere una consultoría para evaluar el rendimiento de compiladores de programación al ejecutarse sobre plataformas Windows en computadores de escritorio, estaciones de trabajo o servidores de baja gama.

Los contratadores usan el método de Montecarlo para calcular Pi que se encuentra en este sitio: https://www.geeksforgeeks.org/estimating-value-pi-using-monte-carlo/ y desean evaluar el rendimiento sobre dos máquinas diferentes para C#, C++, Java  y Python, que les proveerán los las personas que los han contratado*.

Los compiladores para analizar son: Dev C/C++, Microsoft Visual C/C++, GCC e Intel.

1.     Evaluar el rendimiento sobre esas máquinas dadas, mostrando cual es el mejor compilador en cada máquina respectiva.

a.     Recuerde que debe mostrar los sistemas de prueba (descripción de la arquitectura del sistema, incluyendo arquitectura computacional, descripción del sistema operativo usado, entre otras características arquitecturales relevantes).

b.     Recuerde que debe seleccionar las métricas y presentar los resultados de esa evaluación.

c.     Use al menos tres (3) opciones de optimización al compilar

d.     Extraiga el pseudocódigo y diagrama de flujo.

e.     Bonus: Realizar la versión en C y hacer comparaciones.

2.     Responda y explique las siguientes preguntas:

a.     ¿Qué observa al hacer las pruebas comparando los procesadores?

b.     ¿Qué observa al hacer las pruebas comparando las memorias RAM?

c.     Bonus: ¿Qué observa en términos de rendimiento, de diferente entre java y javascript? Si no es en el rendimiento, ¿cuál es la diferencia? Recuerde que debe hacer la descripción técnicamente.

*Para este proyecto pueden usar sus equipos personales y/o de la universidad. No olvide explicar la arquitectura del sistema de prueba.

  • Proyecto 12: Evaluación de Rendimiento usando Linpack

Jack Dongarra, ganador del premio ACM Turing del 2021 (https://es.wikipedia.org/wiki/Jack_Dongarra)  , lideró el desarrollo del benchmark Linpack en 1976. El benchmark Linpack fue desarrollado en el Argonne National Laboratory y es uno de los más usados en sistemas científicos y de ingeniería. (https://es.wikipedia.org/wiki/LINPACK) Entre los usos más importantes es que se usa en el ranking de Top500 que clasifica los supercomputadores más rápidos del mundo. https://www.top500.org/project/linpack/

Existe una versión para PC’s y equipos de gama estándar en https://github.com/microsoft/test-suite/tree/master/SingleSource/Benchmarks/Linpack el cual se les solicita a ustedes como contratistas, que sea usado para comparar el rendimiento de (2) dos plataformas diferentes usando el respectivo benchmarking*.

1.     Evaluar el rendimiento sobre esas máquinas dadas, mostrando cual es la mejor de acuerdo con los resultados que da el Linpack.

a.     Recuerde que debe mostrar los sistemas de prueba (descripción de la arquitectura del sistema, incluyendo arquitectura computacional, descripción del sistema operativo usado, entre otras características arquitecturales relevantes).

b.     Recuerde que debe seleccionar las métricas y presentar los resultados de esa evaluación.

c.     Realizar la prueba tanto para Microsoft Windows como para la distribución de Linux dada y mostrar las diferencias.

d.     Extraiga el pseudocódigo y diagrama de flujo.

e.     Bonus: Realizar la prueba usando dos compiladores diferentes para cada sistema operativo y mostrar los resultados.

2.     Responda y explique las siguientes preguntas:

a.     ¿Qué observa al hacer las pruebas usando valores bajos?

b.     ¿El sistema operativo afecta los resultados? Justifique la respuesta.

c.     Bonus: Investigue y explique por qué el Linpack se considera limitado y que otros benchmarks existen que dan más información relevante sobre los sistemas en términos de capacidades y poder, por ejemplo, en el Top500.

*Para este proyecto pueden usar sus equipos personales y/o de la universidad. No olvide explicar la arquitectura del sistema de prueba.

  • Proyecto 13: Evaluación de Rendimiento usando HPL-LinPack(para la realización de este proyecto deberá apoyarse en el equipo técnico de SC3UIS y utilizará el supercomputador GUANE-1)

Jack Dongarra, ganador del premio ACM Turing del 2021 (https://es.wikipedia.org/wiki/Jack_Dongarra)  , lideró el desarrollo del benchmark Linpack en 1976. El benchmark Linpack fue desarrollado en el Argonne National Laboratory y es uno de los más usados en sistemas científicos y de ingeniería. (https://es.wikipedia.org/wiki/LINPACK) Entre los usos más importantes es que se usa en el ranking de Top500 que clasifica los supercomputadores más rápidos del mundo. https://www.top500.org/project/linpack/

Existe una versión portable dirigida a plataformas de memoria distribuida, llamada HPL (https://netlib.org/benchmark/hpl/) el cual, se solicita a ustedes una consultoría para realizar una prueba de rendimiento en uno y dos nodos.

1.     Evaluar el rendimiento sobre esas máquinas dadas, mostrando cual es la mejor de acuerdo con los resultados que da el Linpack.

a.     Recuerde que debe mostrar los sistemas de prueba (descripción de la arquitectura del sistema, incluyendo arquitectura computacional, descripción del sistema operativo usado, entre otras características arquitecturales relevantes).

b.     Recuerde que debe seleccionar las métricas y presentar los resultados de esa evaluación.

c.     Realizar la prueba tanto para un nodo como para dos nodos.

d.     Extraiga el pseudocódigo y diagrama de flujo.

e.     Bonus: Si se hace una extrapolación teórica hacia 18 nodos ¿Cuál sería ese resultado? ¿El rendimiento esperado es lineal o no? Justifique su respuesta.

2.     Responda y explique las siguientes preguntas:

a.     ¿Qué observa al hacer las pruebas comparando los procesadores?

b.     ¿Qué observa al hacer las pruebas comparando las memorias RAM?

c.     Bonus: Investigue y explique de que se trata ya las máquinas Exascale y post-Exascale y la computación en torno a ella.

  • Proyecto 14: Evaluación de Rendimiento de Ejecución en Paralelo y Secuencial usando el Método de Montecarlo para calcular Pi (para la realización de este proyecto deberá apoyarse en el equipo técnico de SC3UIS y utilizará el supercomputador GUANE-1*)

Una compañía de desarrollo, que principalmente realiza software libre para aeroespacial, requiere una consultoría para evaluar el rendimiento sobre plataformas especificas en paralelo y en secuencial, que se ejecutaran en plataformas sobre Linux. Para realizar la prueba, en una plataforma especifica que le dará la empresa, le propone ejecutar (4) cuatro versiones del cálculo de pi, usando el método montecarlo, escrito en C y que se encuentra disponible en: https://github.com/olcf/Serial-to-Parallel--Monte-Carlo-Pi/blob/master/serialpi.c , la versión en C sin paralelizar; https://github.com/olcf/Serial-to-Parallel--Monte-Carlo-Pi/blob/master/omppi.c la versión en C paralelizada con OpenMP; en https://github.com/olcf/Serial-to-Parallel--Monte-Carlo-Pi/blob/master/mpireducepi.c  , la versión  en C paralelizada en MPI y finalmente https://github.com/olcf/Serial-to-Parallel--Monte-Carlo-Pi/blob/master/mpiomp.c la versión hibrida. Nota importante: Todas las versiones tienen similitudes, pero no son completamente iguales.

1.     Evaluar el rendimiento sobre estas opciones, explicando en qué casos es mejor cada una de ellas, al ejecutarse.

a.     Recuerde que debe mostrar los sistemas de prueba (descripción de la arquitectura del sistema, incluyendo arquitectura computacional, descripción del sistema operativo usado, entre otras características arquitecturales relevantes).

b.     Recuerde que debe seleccionar las métricas y presentar los resultados de esa evaluación.

c.     Use al menos dos (2) opciones de optimización al compilar en la versión secuencial.

d.     Extraiga el pseudocódigo y diagrama de flujo.

e.     Bonus: Realizar la comparación con la versión en CUDA: https://gist.github.com/jlgarridol/fa89b030a4f7c89976675d03e22ae020

2.     Responda y explique las siguientes preguntas:

a.     ¿Cuál es la principal diferencia, en términos de arquitectura de computadores durante la ejecución, de cada uno de los paradigmas de programación utilizados?

b.     Bonus: Investigue y agregue una discusión sobre los efectos de la comunicación cuando se comienza a escalar un problema para que se ejecute.

*Deberán ponerse de acuerdo con el equipo de SC3UIS para realizar el acceso a dos máquinas linux diferentes. Enviar un correo con copia al profesor a sc3.operaciones@uis.edu.co

Taller de Introducción de Grupos de Trabajo (Miércoles 19 de octubre 2022 - En Grupos)

Este taller tiene como objetivo introducir al trabajo de clase que se desarrollará durante todo el semestre y cuyos resultados finales se presentarán al final. Igualmente, reconocer el grado de conocimiento sobre la asignatura y la tecnología de los integrantes del grupo de trabajo. Debe entregarse por escrito faltando diez (10) minutos para la finalización de la clase, no se debe usar ningún tipo de material de consulta, sino realizar la discusión en cada uno de los grupos de trabajo, entre sus compañeros. Todas las respuestas dadas deben darse en una única hoja por lado y lado (máximo dos páginas), por lo que deben discutir y llegar a ser concretos. Identifiquen cúal de sus compañeros tiene la letra más legible y escriban con bolígrafo, no con lápiz. OBSERVE LA ORTOGRAFÍA. Recuerde que este tipo de taller representa un bonus sobre el corte de nota más cercano.

  1. Reconozca a cada uno de los integrantes del grupos y en la hoja de entrega, coloque su nombre completo y código de estudiante.
  2. Discuta con sus compañeros y lleguen a un consenso para conocer sus expectativas respecto al curso. Escríbalas en no más de diez (10) lineas.
  3. Discuta con sus compañeros, como futuros ingenieros de sistemas, cuales son los retos tecnológicos que ustedes observan en torno a la arquitectura de computadores. Escriba y justifique esos retos.
  4. En la primera clase se mostró un concepto de arquitectura de computadores, desde un punto de vista de ingeniero de sistemas. Después de discutir con sus compañeros y escriba y explique a alguien que no es ingeniero o técnico, qué es la arquitectura de computadores. Puede hacer similitudes o dar un ejemplo.
  5. En la primera práctica del curso, se realizó una pregunta que es: Hoy en día se habla mucho de la Transformación Digital y la Industria 4.0. Suponiendo que se gradúa mañana ¿Tiene claro (o no) cómo hacer parte de esas transformaciones y de la Industria 4.0.? .Justifique su respuesta. Teniendo en cuenta la respuesta dada por cada uno de ustedes, discuta con sus compañeros y responda lo siguiente: ¿Cree que la Escuela de Ingeniería de Sistemas e Informática y la Universidad, tienen claro ese tipo de transformación Digital y la Industria 4.0? Escriba y justifique su respuesta.

Asignaciones y Temáticas de Proyectos (1 Semestre 2022)


ESCUELA: 6570 - ESCUELA DE ING.DE SISTEMAS                                   GRUPO TRABAJO
CODIGO ESTUDIANTE ESTUDIANTE
2182695 BUSTAMANTE PLATA CRISTHIAN CAMILO 1 La Escuela de Ingeniería mecánica, decide fortalecer las competencias de sus estudiantes en pregrado, en mecanísmos autonómos, para lo cual los contrata como equipo de consultores de ingeniería de sistemas, para adquirir una solución tecnológica in-situ que permita experimentar con soluciones que posteriormente podrían colocarse en la cualquier vehículo. La solución deberá permitir evaluar y desplegar diferentes tipos de soluciones y estrategias, que por ejemplo han sido construidas usando diferentes lenguajes de programación, ambientes de desarrollo y ejecución conocidos, normalmente sobre diferentes sistemas operativos y compiladores tanto Open Source como propietario. Dicha(s) plataforma(s) debe poder ser accesada por red via Internet o bluetooth para un promedio de 20 usuarios simultáneos y se aspira que se cuente tanto con sistemas embebidos como terminales de acceso (Pueden ser portátiles o tabletas). El presupuesto esta limitado a USD 150.000.oo (Ciento cincuenta mil dólares) para TODA la solución, que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, baterias, etc.). Notas importantes: 1. Se busca un uso académico y de laboratorio. 2. Debe contemplarse la diversidad de procesadores y soluciones posibles (CPUs, GPUs, Cortes ARM). 3. Si el presupuesto es insuficiente, explicar por qué (pero no olvidar que debe darse una propuesta con el presupuesto dado). 4. Cantidad de dispostivos. 5. Consumo energético. Referencia recomendada: https://jetbot.org/


Link del Proyecto: https://sites.google.com/view/binary-beasts/proyecto?authuser=0

2183073 CASTAÑEDA TORRES CARLOS ALBERTO
2162102 CASTILLO ORDUZ JUAN ESTEBAN
2191954 COBOS AYALA DANIEL EDUARDO
2192510 DE ANGEL FONTALVO MANUEL ALEJANDRO
2194285 FARFAN CASTILLO WILMER STEVEN 2 La Escuela de Ingeniería de Sistemas e Informática, decide fortalecer sus competencias en ciberseguridad, en el contexto de guerra cibernética y ciberterrorismo, para lo cual los contrata como equipo de consultores ingenieros, para adquirir una solución tecnológica in-situ que permita simular y emular tanto ataques, como problemas y situaciones relacionados con seguridad. La solución deberá permitir evaluar y desplegar diferentes tipos de soluciones y estrategias, que por ejemplo han sido construidas usando diferentes lenguajes de programación, ambientes de desarrollo y ejecución conocidos, normalmente sobre diferentes sistemas operativos y compiladores tanto Open Source como propietario. Dicha plataforma debe poder ser accesada por red via Internet, para un promedio de 100 usuarios simultáneos y simular mínimo 1000 accesos. El switch respectivo para acceder, asi como el servidor frontend (y otros necesarios, como firewalls, UDPs) y otros dispositivos necesarios de seguridad no los tiene la escuela, por lo que igual debe sugerirse y listarse cuales deben ser esos equipos y sus principales características. La plataforma deberá enlazarse con una plataforma de almacenamiento dedicado que no lo tiene la escuela y que igual debe sugerirse para dicho laboratorio de cibereguridad. Ese almacenamiento debe ser tipo SAN de mínimo 200 TB, que soporte diversos sistemas de archivos (constantemente se configurara y formateara) con puertos de interconexión estándar que se encuentran en el mercado (fibra óptica, Infiniband) y el switch respectivo, no se tien tampoco e igual debe recomendarse. El presupuesto esta limitado a USD 250.000.oo (Doscientos cincuenta mil dólares) para TODA la solución, que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.). Notas importantes: 1. Se busca un uso académico y de laboratorio. 2. Debe contemplarse la diversidad de procesadores y soluciones posibles (CPUs, GPUs, DPUs, FPGAs, XPUs). 3. Si el presupuesto es insuficiente, explicar por qué (pero no olvidar que debe darse una propuesta con el presupuesto dado). 4. Tenga en cuenta que en la escuela de ingeniería de sistemas e informática no hay expertos en ciberseguridad. Referencia Recomendada: https://www.hpe.com/us/en/solutions/infrastructure-security.html


Link del Proyecto: https://sites.google.com/view/athena-command/trabajo-final

2191692 GALEANO CASTRO VALENTINA
2195556 GALEANO HERNANDEZ JEFERSSON ALEJANDRO
2191943 GONZALEZ BUENDIA DANIEL ADRIAN
2190046 GUTIERREZ PALOMINO EDINSSON FERNANDO
2191050 LIZCANO ARENAS CRISTHIAN RAFAEL 3 La Escuela de Ingeniería de Sistemas e Informática, decide fortalecer sus competencias en computación cuántica, para lo cual los contrata como equipo de consultores, para decidir si adquirir una solución tecnológica in-situ o si adquirir el acceso a una plataforma que permita la experimentación con códigos cuánticos, ya sea en un simulador cuántico o en un computador cuántico real. La solución deberá permitir evaluar y desplegar diferentes tipos de soluciones y estrategias, que por ejemplo han sido construidas usando diferentes lenguajes de programación, ambientes de desarrollo y ejecución conocidos Open Source. Dicha plataforma debe poder ser accesada por red via Internet, para un promedio de 20 usuarios simultáneos. El switch respectivo para acceder, asi como el servidor frontend y otros dispositivos necesarios de seguridad los tiene la escuela, por lo que no debe sugerirse ni tampoco los terminales de acceso.. El presupuesto esta limitado a USD 300.000.oo (Trescientos mil dólares) para la solución, que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.). Notas importantes: 1. Se busca un uso académico y de laboratorio. 2. Debe contemplarse la diversidad de procesadores y soluciones posibles tanto en sitio como de acceso a una plataforma. 3. Si el presupuesto es insuficiente, explicar por qué (pero no olvidar que debe darse una propuesta con el presupuesto dado). 4. Realizar una comparación de pros y contras (si in-situ ó de acceso via una nube). Referencia Recomendada: https://www.globenewswire.com/news-release/2021/05/05/2223488/0/en/Atos-and-SENAI-CIMATEC-launch-Center-of-Excellence-in-Quantum-Computing-in-Brazil.html


Link del Proyecto: https://sites.google.com/view/arquitecturagrupo3/trabajo-final

2191969 MENDOZA ALVARADO SEBASTIAN DAVID
2182693 MERCHAN QUEVEDO HELMAN ANDRES
2180049 MORENO PINTO CAMILO ANDRES
2191424 NUÑEZ RANGEL DAVID ALEJANDRO
2191928 PRADA MORALES KEVIN ALEXIS 4 La Escuela de Ingeniería Química, decide fortalecer las competencias de sus estudiantes en pregrado, como todo el mundo, en Inteligencia Artificial y Analítica de Datos, para lo cual los contrata como equipo de consultores de ingeniería de sistemas, para adquirir una solución tecnológica in-situ que permita experimentar con soluciones que posteriormente podrían colocarse en la un repositorio abierto dirigido igualmente a estudiantes. La solución deberá permitir evaluar y desplegar diferentes tipos de soluciones y estrategias, que por ejemplo han sido construidas usando diferentes lenguajes de programación, interpretadores (con una preferencia hacia Python) ambientes de desarrollo y ejecución conocidos, frameworks (con una preferencia hacia TensorFlow y Pythorch) y visualizadores, normalmente sobre diferentes sistemas operativos y compiladores tanto Open Source como propietario. Dicha plataforma debe poder ser accesada por red via Internet desde cualquier punto de la Universidad y fuera de ella . El presupuesto esta limitado a USD 150.000.oo (Ciento cincuenta mil dólares) para TODA la solución, que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.). Notas importantes: 1. Se busca un uso académico y de laboratorio. 2. Debe contemplarse la diversidad de procesadores y soluciones posibles (CPUs, GPUs, Cortes ARM). 3. Si el presupuesto es insuficiente, explicar por qué (pero no olvidar que debe darse una propuesta con el presupuesto dado). 4. Administrador de plataforma (costo anual, no estipulado dentro del presupuesto inicial solo para infrastructura). Referencia recomendada: https://www.nvidia.com/es-la/data-center/dgx-a100/


Link del Proyecto: https://sites.google.com/view/xor-fusion/proyecto-final?authuser=0

2191621 QUINTERO OLARTE JUAN HARVEY
2191956 RODRIGUEZ ROMERO JULIAN ANDREY
2191942 ROJAS MAYORGA BRAYAN ARLEY
2194284 SANCHEZ CALDERON FABIAN ARTURO
2192511 SARMIENTO SALAZAR JAVIER ANDRES 5 La Escuela de Economía, decide fortalecer sus competencias en sistemas de gran escala y big data, para lo cual los contrata como equipo de consultores, para adquirir una solución tecnológica in-situ que permita experimentar con soluciones que posteriormente podrían colocarse en la nube. La solución deberá permitir evaluar y desplegar diferentes tipos de soluciones y estrategias, que por ejemplo han sido construidas usando diferentes lenguajes de programación, ambientes de desarrollo y ejecución conocidos, normalmente sobre diferentes sistemas operativos y compiladores tanto Open Source como propietario. Dicha plataforma debe poder ser accesada por red via Internet, para un promedio de 20 usuarios simultáneos. El switch respectivo para acceder, asi como el servidor frontend y otros dispositivos necesarios de seguridad no los tiene la escuela, por lo que igual debe sugerirse y listarse cuales deben ser esos equipos y sus principales características. La plataforma deberá enlazarse con una plataforma de almacenamiento dedicado que no lo tiene la escuela y que igual debe sugerirse para dicho laboratorio de Big Data. Ese almacenamiento debe ser tipo SAN de mínimo 200 TB, que soporte diversos sistemas de archivos (se configurará y actualizará al menos una vez al año), principalmente Lustre con puertos de interconexión estándar que se encuentran en el mercado (fibra óptica, Infiniband) y el switch respectivo, no se tiene e igual debe recomendarse. El presupuesto esta limitado a USD 250.000.oo (Dos cincuenta mil dólares) para TODA la solución, que incluiría impuestos posibles, un administrador de plataforma y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.). Notas importantes: 1. Se busca un uso académico y de laboratorio. 2. Debe contemplarse la diversidad de procesadores y soluciones posibles (CPUs, GPUs, DPUs, FPGAs, XPUs). 3. Si el presupuesto es insuficiente, explicar por qué (pero no olvidar que debe darse una propuesta con el presupuesto dado). 4. Recomendar las competencias del administrador de la plataforma. Referencia Recomendada: https://www.ibm.com/downloads/cas/AYWDRYLW


Link del proyecto: https://sites.google.com/view/alphateamarquitectura/proyectofinal

https://youtu.be/LEUv6lcoiAg

2190049 TORRES GARZON JEFREY STEVEN
2182029 TORRES SALCEDO DANIEL SANTIAGO
2191959 VALERA SANCHEZ JOSE DANIEL
2192941 VASQUEZ GARCES GYSSELIS
2191932 ALVAREZ AMADO ADEL MAURICIO 6 La Escuela de Ingeniería de Sistemas en colaboración con la Escuela de Diseño Industrial busca desarrollar sistemas de interacción hombre máquna, tipo VR, en un laboratorio común enfocado a estudiantes de pregrado y postgrado, para lo cual los contrata como equipo de consultores. Los consultores deben sugerir que adquirir como una solución tecnológica in-situ que permita probar diversos tipos de aplicaciones que han sido programados en diferentes ambientes de desarrollo y ejecución conocidos (MyArmy, Unity, etc), normalmente sobre diferentes sistemas operativos y compiladores tanto Open Source como propietario. Estas aplicaciones posteriormente serán ofertados para interactuar en linea por una nube universitaria. Dicha plataforma debe poder ser accesada por red via Internet, para 100 usuarios probadores en promedio, pero igual se espera que ustedes sugieran al menos dos máscaras o cascos de soporte VR. El switch respectivo para acceder asi como el servidor frontend se supone que ya se tiene, con caracteristicas de puertos de alta capacidad y baja latencia. Se espera que losdesarrollos, como se mencionó anteriormente sean de alta gama (tanto gráfica como de sonido, no gama media o baja) y permita una interacción en tiempo real. La plataforma deberá enlazarse con una plataforma de almacenamiento dedicado cuyas caracterísiticas son desconocidas. El presupuesto esta limitado a USD 350.000.oo (trescientos cincuenta mil dólares) que incluiría igual un par de cascos/máscaras de soporte VR, tanto impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.). Referencia Recomendada: https://www.worldviz.com/virtual-reality-solutions


Link del Proyecto: https://ekismet1.wixsite.com/2022-1a2/blog

2172023 BLANCO DUARTE EFRAIN JOSE
2182689 CALDERON SALAZAR GEYDI DAYANA
2190081 CERINZA ZARAZA JUAN PABLO
2192508 CLARO GUERRERO JUAN DIEGO
2190040 DAZA SUAREZ BRAYAN SNEIDER 7 La Escuela de Ingeniería de Sistemas e Informática busca fortalecer sus capacidades para tratar problemas diversos en Inteligencia Artificial para diferentes áreas, para lo cual los contrata a ustedes como equipo de consultores, para adquirir una solución tecnológica in-situ que permita probar diversos tipos de algoritmos usando ambientes de desarrollo y ejecución conocidos (Pytorch, TensorFlow, etc.), normalmente sobre el sistema operativo linux y compiladores Open Source. Dicha plataforma debe poder ser accesada por red via Internet y redes privadas específicas (como la Red Académica RENATA), para un número de 10 usuarios simultáneos posibles. Se espera que los algoritmos , desarrollados asi como las aplicaciones manejen una escala mediana de datos y procesos. No es una plataforma de producción, sino de prueba, entrenamiento y despliegue, como se mencionó, de mediana escala. La plataforma deberá enlazarse con una plataforma de almacenamiento dedicado queno se tipo SAN de 250 TB como minimo con puertos de interconexión estándar que se encuentran en el mercado (fibra óptica, Infiniband) y el switch respectivo, que igual la debe adquirirse. El presupuesto esta limitado a USD 400.000.oo (Cuatrocientos mil dólares) que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.). 1. Se busca un uso académico y de laboratorio. 2. Debe contemplarse la diversidad de procesadores y soluciones posibles (CPUs, GPUs, Cortes ARM). 3. Si el presupuesto es insuficiente, explicar por qué (pero no olvidar que debe darse una propuesta con el presupuesto dado). 4. Administrador de plataforma (costo anual, no estipulado dentro del presupuesto inicial solo para infrastructura). Referencia recomendada: https://www.nvidia.com/es-la/data-center/dgx-a100/


Link del Proyecto: https://sites.google.com/d/1CwY-G27jd-LXQ5IB9VzhwBRXdrB_XGTJ/p/1mGqIjxIHB1Ad7GEVNCSdXhMZ6AMHzedP/edit


Link del Video: https://www.canva.com/design/DAFLy2vCNwE/IiKCwAqJRFBVe84Y0wHGcA/watch?utm_content=DAFLy2vCNwE&utm_campaign=designshare&utm_me

2190093 DURAN MACIAS JUAN SEBASTIAN
2191420 ESPINEL BOTERO MIGUEL FELIPE
2191962 GARCIA RUEDA ANDRES JULIAN
2172020 GUTIERREZ MENDEZ KEVIN SANTIAGO
2191957 HURTADO RODRIGUEZ CESAR LUIS 8 La Universidad Industrial de Santander, busca asesorar al IDEAM para ubicar en Colombia las capacidades tecnológicas que permiten el desarrollo y ejecución de aplicaciones para pronosticar el clima en los aeropuertos, usando principalmente WRF, in-situ. Buscando solventar sus necesidades, los contrata a ustedes como equipo de consultores, para adquirir una solución tecnológica in-situ que permita ejecutar diversos tipos de códigos basados en WRF y que se ubicaría como piloto en la UIS. Estos códigos han sido construidos usando principalmente C/C++ y. Fortran, bajo ambientes de desarrollo y ejecución conocidos, normalmente sobre Linux y compiladores tanto Open Source como propietario. Dicha plataforma debe poder ser accesada por red via Internet, para un promedio de 25 usuarios simultáneos, pero lo mas importante es que permita escalar lo máximo posible los procesos, de tal manera que pueda tener los diferentes resultados de sus códigos en máximo dos horas. El switch respectivo para acceder, asi como el servidor frontend y otros dispositivos necesarios de seguridad los tiene ya el organismo. La plataforma deberá enlazarse con una plataforma de almacenamiento dedicado tipo SAN de 1.5 PB con puertos de interconexión estándar que se encuentran en el mercado (fibra óptica, Infiniband) y el switch respectivo, que igual ya se tiene por parte del IDEAM y se transferira via RENATA. El presupuesto esta limitado a USD 800.000.oo (Ochocientos mil dólares) que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.). Notas importantes: 1. Se busca que garantice un consumo de potencia eléctrica bajo. 2. Los códigos de WRF que se tienen, están principalmente dirigidos al uso de CPUs. 3. Igualmente se espera una recomendación de compiladores a usar. 4. No olvide ver soluciones similares en otros paises vecinos, principalmente en Ecuador y Brasil. 5. Debe estipularse un administrador de plataforma, especificando sus competencias. 6. Pronósticar la vida útil de la solución y necesidades de actualización y remplazo. 7. Comparar con el costo y pros y contras de la solución en la nube. Rerefencia Recomendada: http://www.ideam.gov.co/


Link del Proyecto: https://sites.google.com/view/grupo-arkham/trabajo-final

2191937 LA ROTTA PEÑA DANIEL FERNANDO
2191941 LEON QUINTERO JULIAN DAVID
2190087 LINARES TEJEDOR LUIS ALEJANDRO
2190071 MANTILLA CLARO HENRY DARIO
2191955 MEDINA HERNANDEZ JUAN DAVID 9 La Escuela de Ingeniería Eléctrica, Electrónica y Telecomunicaiones (E3T) busca desarrollar aplicaciones para simulación en la industria energética y medioambiental desde las especializaciones con socios de la industria, para lo cual los contrata como equipo de consultores, para adquirir una solución tecnológica in-situ. La solución puede ser un sistema centralizado o sistemas de trabajo individuales, en los cuales desarrollarían 3 personas y accederían a través de pc's personales o tabletas que ya se tienen. Las aplicaciones han sido construídas usando diferentes lenguajes de programación, compiladores, ambientes de desarrollo y ejecución conocidos, dirigido al sistema operativo linux y todo bajo una política de Open Source. Las aplicaciones son colaborativas y normalmente estas aplicaciones se ejecutarán en sistemas de computación de alto rendimiento (HPC) que contienen diferentes tipos de procesadores (CPUs, TPUs, GPUs, XPUs). Dicha solución deberá poder conectarse via una red privada, a un servidor de acceso donde se almacenan las aplicaciones y desarrollos que ya tiene la empresa y por supuesto a Internet a través de una red pública. El switch respectivo para acceder a ese servidor ya lo tiene la empresa así como el sistema de almacenamiento. Las características de ese servidor, como del switch y el sistema de almacenamiento son desconocidas. El presupuesto esta limitado a USD 300.000.oo (Trecientos mil dólares) que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.). Notas importantes: 1. Se busca un uso académico y de laboratorio. 2. Debe contemplarse la diversidad de procesadores y soluciones posibles (CPUs, GPUs, DPUs, FPGAs, XPUs). 3. Si el presupuesto es insuficiente, explicar por qué (pero no olvidar que debe darse una propuesta con el presupuesto dado). 4. Recomendar las competencias del administrador de la plataforma. Referencia Recomendada: https://www.lenovo.com/us/en/servers-storage/servers/
2191711 NOVOA MARTINEZ JHON JAIME
2162916 PARRA PERILLA DEIVYD DARIO
2191636 PEÑA BELLO BREYNER SANTIAGO
2191691 RAMIREZ DUARTE JUAN PABLO
2181686 RINCON GUEVARA YEZITH FERNANDO 10 El Semillero de Cohetería UIS Aeroespacial (SCUA) de la Universidad Industrial de Santander, busca desarrollar aplicaciones para servicios satélites aerospaciales que se utilizarán principalmente para identificación en imagenes satélitales. Para ello quiere adquirir una serie de plataformas de prueba embebidas, tanto con sistemas CPUs ARM o GPUs que garantice bajo consumo energético principalmente, administración remota via internet y buenas capacidades de procesamiento. Las aplicaciones han sido construidas usando diferentes lenguajes de programación (C/C++, CUDA, JAVA), directivas(OpenACC, Matlab) e interpretadores (como Python, R), compiladores, ambientes de desarrollo y ejecución conocidos, dirigido al sistema operativo linux y todo bajo una política de Open Source. El presupuesto esta limitado a USD 15.000.oo (quince mil dólares) que incluiría impuestos posibles y gastos de adaptación (enfriamiento especializado si se requiere, armarios, UPS, etc.). Notas importantes: 1. Cantidad de posibles elementos de la solución (número de dispositivos embebidos). 2. Soporte de alto rendimiento (HPC) embebido (o HPC@Pocket). 3. Se pesera al menos poder adquirir dos plataformas de tecnologías y fabricantes diferentes. Referencias Recomendadas: https://www.nvidia.com/es-la/autonomous-machines/embedded-systems/ y http://giema.uis.edu.co/index.php/semillero-de-investigacion-aeroespacial


Link del Proyecto: https://juanfelipevn.wixsite.com/grupo-arquitectura/trabajo-final

2192655 RODRIGUEZ HERNANDEZ CARLOS JOSSEPH
2194144 TAVERA CAMACHO DANIEL RICARDO
2190092 VALLEJO GARCIA HERNAN SANTIAGO
2191967 VELANDIA NARANJO JUAN FELIPE

Recuerden que son las mismas asignaciones para los grupos de trabajo de los talleres pràcticos.

La referencia recomendada es una referencia inicial, debe buscar otras adicionales.


CONSULTA CON EL PROFESOR Y SESIONES ESPECIALES

Normalmente, si requieren alguna consulta pueden enviarme un email al correo cbarrios(-@-)uis.edu.co o cbarrios (-@-) saber.uis.edu.co. De tal manera se podrá planificar una cita de interacción de consulta previamente.

Algunas sesiones especiales serán programadas en el transcurso del semestre, entre las cuales podrían estar:

  • Sesión Especial Sobre Arquitecturas Pot-Moore y Cuánticas
  • Sesión Especial con Fabricante/Vendedor de Tecnología
  • Sesión Especial con Científico Invitado
  • Visita al Parque Tecnológico de Guatiguará y a Supercomputación y Cálculo Científico (Planificada previamente)