24 votos

Programación de física

Lo importante es la programación en la física?

Estoy estudiando física en la universidad y en estos primeros años en realidad no existe, enfoque (como es comprensible) para lo que es trabajar en la física. Ahora, sé que la programación es realmente importante (he leído varios posts en los foros, incluso el que está presente aquí en el Intercambio de la Pila), pero en realidad me preguntaba: ¿qué 'hardware' es usado en la física? Vale la pena aprender a manejar las cosas como un Raspberry Pi-tipo-de la junta? O simplemente no valdría la pena?

Yo no sé si eso podría ser de utilidad para responder a esta pregunta, pero yo estaría interesado en la física de la materia condensada para el futuro.

36voto

DukeLion Puntos 2341

Como un computacional físico, trabajando en materiales/materia condensada, estoy muy sesgada o bien colocado para comentar esto.

La física, en la práctica, se divide en tres enfoques superpuestos: experimental, teórico y computacional. (El mayor impacto en los trabajos de investigación incluyen generalmente un esfuerzo combinado de los tres.)

Si usted planea ir a computacionales de la investigación, entonces usted tendrá que hacer una buena cantidad de programación. Sin embargo, no conozco a nadie que haya hecho uso de la Raspberry Pi para la investigación de la física (que no quiere decir que nadie tiene, pero es una novedad en lugar de algo que se suele hacer). En la física computacional, el código, casi exclusivamente, a ser ejecutado, ya sea en el escritorio estándar de las máquinas o de las supercomputadoras (donde el uso de paso de mensajes, como los sistemas de MPI para explotar el enorme paralelismo). Prácticamente todas las universidades tienen sus propios supercomputadoras, pero usted también puede tener acceso a algunos de los más grandes, nacional o incluso internacional supercomputadoras (como ARQUERO, Jaguar, y así sucesivamente).

Las tarjetas gráficas también se han convertido en muy popular para la investigación de la física en los últimos años debido a la subida de CUDA, y la mayoría de las supercomputadoras ahora incluyen varios nodos lleno de gama alta de tarjetas gráficas. Así GPGPU de programación es una buena habilidad, pero no es una necesidad.

También vale la pena mencionar los lenguajes de programación. Principalmente por razones históricas, la mayoría de los académicos de código que realmente está escrito en el procedimiento en Fortran (que es tan arcaico que todavía tiene la funcionalidad de izquierda a través de la perforadora de tarjetas de la época). C/C++, Javay Python son también ampliamente utilizados, junto con el shell de Unix (la mayoría de los académicos máquinas de ejecutar Linux). Los que hacen un montón de modelización estadística sobre todo el uso de R o IDL. Y los que son demasiado perezosos para hacer real la programación - la mayoría de los matemáticos y los ingenieros de uso de MATLAB o Mathematica (bueno, estoy siendo un poco duro en los que uno).

Permítanme terminar discutiendo física teórica y física experimental. Prácticamente todos teórico sé que hace mucho de su trabajo en equipos - código de programación para resolver numéricamente, o prueba de algo, por ejemplo. Y muchos de sus "teorías" son destinadas a fomentar metodologías computacionales. Un ejemplo clásico de esto es el Hohenberg-Kohn teoremas que sentaron las bases para una teoría funcional de la densidad, y ahora hay muchos teóricos tratando de extender a este por el desarrollo lineal de la escala y del espacio real de la DFT.

También se ha convertido en algo común para la experimentación del programa. Ya se trate de microcontroladores como los Arduinos (como señala Emilio Pisantry a continuación), las secuencias de comandos para el análisis de datos, o incluso emplear estándar de técnicas de simulación para entender mejor sus observaciones experimentales.

3voto

israkir Puntos 126

Hardware-sabio, es probable que habría que escribir código en un sistema de tipo unix que puede distribuir el código para múltiples núcleos y/o al menos una GPU.

Si este post se refiere a lo que el hardware debe ser mediante: le sugiero que configurar una PC de escritorio con el siguiente para una barata pero eficaz solución:

  • Una tarjeta gráfica de NVIDIA - Sólo las tarjetas gráficas NVIDIA puede ejecutar CUDA y, en consecuencia, trabajar con la mayoría de GPU acelerada de las bibliotecas. AMD / otras marcas pueden utilizar OpenCL pero usted puede tener una situación en la que el curso utiliza una biblioteca sólo es compatible con CUDA. En la actualidad, algunas de las bibliotecas públicas, tales como python, theano , realmente, sólo el apoyo de las tarjetas de NVIDIA porque de sus CUDA dependencia
  • Una CPU con al menos dos núcleos - así que usted puede jugar con varios núcleos de código
  • Ubuntu es una muy simple y eficaz unix-como la plataforma que le dará una buena programación de configurar
  • Arranque Dual Windows - principalmente para la comodidad a la hora de escribir los cursos

La lista anterior le permite jugar con la GPU acelerada de código, multi-core de programación y permite la instalación de bibliotecas fácilmente a través de ubuntu.

Desde mi experiencia, a menudo se puede ejecutar intensiva de código en la universidad de supercomputadoras, pero puede que no quiero tener que pasar por el esfuerzo de acceder a ellos todo el tiempo / puede que no tenga la posibilidad de acceder a ellos todo el tiempo.

Como un reciente posgrado de física en el reino unido, puedo decir que cada trabajo que me han tratado o aplicada, relacionados con la física, ha tenido un computacional requisito.

Como para los idiomas, he tenido que aprender Python y C/C++ desde que se graduó de un curso que enseña Fortran. Yo recomendaría el aprendizaje de todos los tres.

2voto

ash108 Puntos 226

Tanto la física teórica y simplemente de "aprendizaje" de la física no requiere mucho de programación. Este es el caso profunda en muchos campos de la física.

La física Experimental con el procesamiento de datos en el contrario. No programar directamente, pero un buen conocimiento de cálculo y datos/basada en la matriz de software. Estos a menudo requieren algunos conocimientos de programación, como Matlab o Maple de MathWorks.

Cuando llegue al campo de la física de la materia condensada y estructuras moleculares, etc., usted necesitará un poco de física estadística métodos y herramientas para la iteración numérica y de simulación, los cuales son imposibles sin una CAS de la herramienta.

Por supuesto, llegar al mundo de la electrónica a menudo requiere de algún tipo de circuito de control. Un Arduino o Raspberry Pi y todo lo que ellos están todos los que son llamados, son herramientas para el control de circuitos. Pero a menudo esto no es para la física de trabajo, a menos que se paso todo el camino en el área digital y lejos de los principios de la física detrás de él.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X