Foros-FIUBA Foros HostingPortal
 FAQ  •  Buscar  •  Wiki  •  Apuntes  •  Planet  •  Mapa  •  Eyeon  •  Chat
Preferencias  •  Grupos de Usuarios
Registrarse  •  Perfil  •  Entrá para ver tus mensajes privados  •  Login
Ver tema siguiente
Ver tema anterior

Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente
Autor Mensaje
sabian_reloaded
Nivel 9


Edad: 34
Registrado: 18 Jun 2009
Mensajes: 2925
Ubicación: El bosque platense
Carrera: No especificada
antiguabarbuda.gif
MensajePublicado: Vie Ago 21, 2009 11:07 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Sebastian Santisi escribió:
[Ah, al respecto de esto; si tenés alguna duda puntual, abrite un thread, y se ve qué se puede hacer.

Si bien en Fortran no he laburado mucho más que para emparchar alguna aplicación o traducir a algún otro lenguaje; tiene una implementación de arrays bastante similar a la de C (con algunas salvedades como la base de cuenta y el row order, pero son similares al 99%)... seguramente pueda darte una mano.


Mil gracias por la hospitalidad, aún sin ser estudiante de FIUBA. Ahora este lo pude entender, pero me llevo facil 1 hora entenderlo (aunque cheteaba a la vez :P). Me sentí totalmente lelo.
Cuando vuelva a tener problemas (o sea la proxima vez que apareza un arreglo Jajaja) armo un thread.

Gracias por todo Seba.

Abrazo.


P.D 1: FORTRAN 90 tambien usa la norma IEEE754 (o como se llame :P). Igualmente me aclaraste mi duda básica cuando me confirmaste que C tiene varios tipos de Reales.

P.D 2: Como sabes hijo de budaaaa Jajaja , es mas corto preguntarte que lenguaje no sabes a preguntarte cual sabes.

P.D 3: Otra duda que me quedo en el tintero, C admite funciones externas (esto lo doy practicamente por seguro)? Y admite variables complejas?


EDIT: Cambienle el titulo a " FAQ para los giles que no saben C", me lo merezco :P


Capricornio Género:Masculino Serpiente OcultoGalería Personal de sabian_reloadedVer perfil de usuarioEnviar mensaje privado
Ignium
Nivel 9


Edad: 38
Registrado: 29 Oct 2005
Mensajes: 2725
Ubicación: Rivadavia y Puan
Carrera: Civil
argentina.gif
MensajePublicado: Vie Ago 21, 2009 11:27 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

De hacer benchmark entre C y Fortran...

Vi mucho uso de mathemática, mathlab u octave para desarrollo y ensayo de algoritmos.
Si no me importa la eficiencia pero si ver la eficacia del algoritmo estos lenguajes son lo ideal pues tiene todo ya interiorizado.

En cambio existe una etapa de aplicación de código en la cual la velocidad es crucial. Y ahí entra el tema de fortran vs C es un debate que lleva bocha de tiempo.

Tengo solo tres casos puntuales. Un investigador de suelos de Stanford que pasó por el labo nos contaba que, teniendo ayudantes especializados en C, sus algoritmos numéricos siempre corrían mas rápido en fortran, relegando C para hacer el pre y el post. También el caso de uno de los chicos del equipo de Borkins, que realizaban ciertos códigos en fortran cuando eran de uso intensivo y el delirante de Sfrizo que hacía las pruebas en mathemática y después lo llevaba todo a Fortran.

No logré encontrar un documento o fuente que me de un resultado contundente

_________________
Centro de Estudiantes de Ingeniería - FIUBA

Grupo Google de la Comisión Curricular de Ing. Civil

Aquario Género:Masculino Bufalo OfflineGalería Personal de IgniumVer perfil de usuarioEnviar mensaje privadoEnviar emailMSN Messenger
sabian_reloaded
Nivel 9


Edad: 34
Registrado: 18 Jun 2009
Mensajes: 2925
Ubicación: El bosque platense
Carrera: No especificada
antiguabarbuda.gif
MensajePublicado: Sab Ago 22, 2009 1:27 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Que buen aporte!!! Esta muy bueno el topic. No sabía que había un debate al respecto. Gracias por los aportes a todos, ya se desvirtuo al carajo esto pero esta bueno.


Capricornio Género:Masculino Serpiente OcultoGalería Personal de sabian_reloadedVer perfil de usuarioEnviar mensaje privado
Sebastian Santisi
Administrador Técnico


Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451


argentina.gif
MensajePublicado: Sab Ago 22, 2009 8:30 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

sabian_reloaded escribió:
P.D 1: FORTRAN 90 tambien usa la norma IEEE754 (o como se llame :P). Igualmente me aclaraste mi duda básica cuando me confirmaste que C tiene varios tipos de Reales.

Bien, es lo más lógico que los haya adoptado.
sabian_reloaded escribió:
P.D 3: Otra duda que me quedo en el tintero, C admite funciones externas (esto lo doy practicamente por seguro)? Y admite variables complejas?

Lo de escalabilidad, me refería a eso... C es un lenguaje muy práctico para la modularización, y permite construir en base a módulos programas muy complejos y largos sin convertirse en cosas inmantenibles. Obviamente, admite todas las herramientas necesarias como para trabajar en más de un módulo, con diferentes compilaciones, con creación de bibliotecas, etc.

[edit]Al respecto de variables complejas; agregaron algo por ese lado en C99; nunca las usé... pero por las características del lenguaje, es trivial hacerse un módulo propio que las implemente.[/edit]
Ignium escribió:
De hacer benchmark entre C y Fortran...

Yo nunca vi uno (si bien tampoco busqué); pero sospecho a que se debe a la falta de fundamentos de los que exponen la teoría que viene a continuación.
Ignium escribió:
Vi mucho uso de mathemática, mathlab u octave para desarrollo y ensayo de algoritmos.
Si no me importa la eficiencia pero si ver la eficacia del algoritmo estos lenguajes son lo ideal pues tiene todo ya interiorizado.

Incluso cuando la eficiencia importa; dependiendo de la complejidad, sigue siendo más práctico un lenguaje de estos funcionales matemáticos.

El tiempo de desarrollo también debe ponerse en la balanza, más allá del tiempo de ejecución.

Si querés tener en C números de precisión arbitraria, buenas bibliotecas matriciales (compactas, en cuanto a esparsas tenés que caer en C porque Matlab no lo implementa de base), funciones máginas de alto nivel de esas que sacan los coeficientes de fourier, etc., un graficador incorporado, y los tantos chiches que tienen los otros programas; vas a tener que laburar un montón para armarte tu framework... y probablemente sigas dependiendo de gnuplot o alguna cosa por el estilo para hacer la visualización final.

En el tiempo en el que escribís un mal programa en C, tal vez hayas podido sacar 50 programas en Matlab. Si estás investigando, o creando modelos a medida, aunque el tiempo te urja, bien podés dedicarle 1 semana a armar el modelo en Matlab y después esperar una semana a que corra... no es negocio perder un mes haciéndolo en C para que corra en un par de horas.
Ignium escribió:
En cambio existe una etapa de aplicación de código en la cual la velocidad es crucial. Y ahí entra el tema de fortran vs C es un debate que lleva bocha de tiempo.

Y en el cual jamás escuché una opinión seria Smile.
Ignium escribió:
Tengo solo tres casos puntuales. Un investigador de suelos de Stanford que pasó por el labo nos contaba que, teniendo ayudantes especializados en C, sus algoritmos numéricos siempre corrían mas rápido en fortran, relegando C para hacer el pre y el post. También el caso de uno de los chicos del equipo de Borkins, que realizaban ciertos códigos en fortran cuando eran de uso intensivo y el delirante de Sfrizo que hacía las pruebas en mathemática y después lo llevaba todo a Fortran.

Yo recuerdo a un docente en Exactas (ingeniero él) que afirmó muy rotundamente en su teórica que Fortran era más rápido que C... y también recuerdo al ayudante de la práctica (cientista de la computación con al menos 30 años menos, él) cuereándolo después :P.

La realidad, es que esas opiniones de alto nivel, totalmente categóricas, son una idiotez en esta disciplina como en cualquier otra.

La velocidad de un lenguaje es función de la traducción que se pueda hacer de ese lenguaje al código máquina, y de la eficiencia de esa traducción sobre el funcionamiento de la arquitectura. Usando dos compiladores buenos de C y de Fortran, no puede haber una diferencia crucial, en dos códigos similares.

Los que hacen estos benchmarks de albañil (imaginate, Ignium, a un MMO hablándote de que determinada variedad de Portland él él opina que es más dura en base a cómo una vez le hizo un revoque uno u otro albañil) suelen tener bastante poca fundamentación a nivel de qué es lo que está generando el compilador.

Luego, hay que ver la calidad de código (no de optimización) de la versión Fortran contra la versión C. Si yo fuera un "ayudante especializado en C" para el tipo de suelos de Stanford y el tipo de suelos de Stanford me da un código chorizo de 5000 lineas de código Fortran, lleno de gotos, con todas las variables globales, sin ni una sola función, y me pide que lo pase a C (cambiá suelos por hidráulica, Fortran por BASIC y ayudante por consultor y me tenés a mí) por mi salubridad mental, lo primero que voy a hacer es estructurar el código de una manera medianamente funcional. Si aislo bloques por funcionalidad, encapsulo en funciones, oculto las variables locales, y hago todas las cosas que son necesarias para que 5000 líneas de código no sean una ensalada donde el 50% del código está repetido; voy a obtener un programa decente, pero probablemente correrá más lento que el que era un programa secuencial, reservaba toda su memoria al inicio, y jamás hacía una llamada a una función. ¿Cuánto más lento?; ahí depende de la capacidad y conocimiento de arquitectura, hardware y lenguaje del tipo que haga la traducción; puede ser increíblemente más lento o puede ser imperceptiblemente más lento. El punto es que son comparaciones entre dos programas distintos.

Un bucle de código de trabajo intensivo (de los que hacen al tiempo en un software numérico, buscando alguna convergencia o actualizando sistemáticamente valores paso a paso) tiene que tener la misma eficiencia en C que en Fortran. Si da tiempos diferentes, o no es una traducción equivalente, o uno de los dos está violando la cuántica.

_________________
Image[tex] ${. \ \ \ \ \ \ \ \ \ .}$ [/tex][tex] ${\Large Usá \LaTeX, no seas foro...}$ [/tex]

Aries Género:Masculino Perro OfflineGalería Personal de Sebastian SantisiVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuario
Mostrar mensajes de anteriores:      
Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente

Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro
No podés responder a temas en este foro
No podés editar tus mensajes en este foro
No podés borrar tus mensajes en este foro
No podés votar en encuestas en este foro
No Podéspostear archivos en este foro
No Podés bajar archivos de este foro


Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker
365 Attacks blocked.

Powered by phpBB2 Plus, phpBB Styles and Kostenloses Forum based on phpBB © 2001/6 phpBB Group :: FI Theme :: Mods y Créditos

Foros-FIUBA está hosteado en Neolo.com Cloud Hosting

[ Tiempo: 0.5174s ][ Pedidos: 18 (0.4428s) ]