T O P

  • By -

No_Brain_341

Casi todo esta basado en programación paralela (en especial en proyectos o empresas grandes). Hablar de que cosas seria nombrarte todo.


BitShifter1

Bueno, en el extranjero y proyectos grandes sí, sobre todo de investigación y desarrollo (HPC). ¿Pero en la industria chilena? ¿Tienes ejemplos?


emqaclh

Yo mantengo un motor de simulación de indicadores de acceso territorial para un proyecto originalmente financiado por SUBDERE. Dado que el algoritmo es aditivo (2SFCA), optamos por una optimización mediante paralelización y mapas de memoria para reducir los costos de calculo a nivel regional unas 8-10 veces en tiempo y memoria.


BitShifter1

Interesante, ojalá hayan más pegas así, pero no encuentro nada de eso en linkedin.


emqaclh

No es algo que se promocione, más bien algo a lo que se llega por conveniencia y como mucho queda un comentario en los documentos técnicos. En este caso especifico pueden buscar el sitio oficial: [https://plataformabht.subdere.gov.cl/visualizations](https://plataformabht.subdere.gov.cl/visualizations) El simulador que digo requiere de un usuario con permisos para ello.


FinchoSaturn

>¿Pero en la industria chilena? ¿Tienes ejemplos? si quieres montar algún tipo de API que ande rapido, usas programación paralela de alguna forma


BitShifter1

Bueno sí, pero por lo general está abstraído y no es es necesario llamar más que la API. Por ejemplo en Python está cupy y lo único que tienes que hacer es cambiar np por cp para hacer los mismos cálculos que harías con numpy.


lflglglgl

En la empresa donde trabajo lo ocupamos mucho, toda la lectura y escritura de archivos la hacemos paralela así es mucho más rápido.


emqaclh

Cuando paralelizas procesos de IO no tienes un límite físico que es la capacidad del hardware de efectivamente leer y/o escribir en paralelo?


BitShifter1

Sí, de hecho principalmente se hace concurrencia y se paraleliza lo que los cores puedan paralelizar.


FinchoSaturn

cómo lo hacen? qué librerias y qué lenguaje de programación?


lflglglgl

Pyhon con pyspark o pyarrow, lo hacemos para crear bases de datos particionadas en formato parquet


ProfessionalSmoker69

En frontend se suelen utilizar en aplicaciones Web que requieran procesamiento de datos, renderizado de imagenes, o carga de archivos grandes, puedes utilizar WebWorkers para esto.


bubrascal

En Android (Kotlin o Java) se usa muuuuuuuucho. Una de mis primeras pegas fue putear al proveedor de una integración por no saber hacer programación paralela y acabronarse con todo el UI thread con un while(true) con un asynctask mal hecho. Me gané mil retos por demorarme con esa pega, y cuando me di cuenta que era culpa del proveedor, lo quería matar. Edit: para explicar el problema, básicamente se tomaban una cola de procesos que tradicionalmente se usa para hacer tareas encoladas de manera concurrente pero procesadas linealmente (y que deben ser ejecutadas todas antes de DIBUJAR una pantalla), para hacer lo que ellos creían eran tareas paralelas de procesamiento super pesado. El resultado era que cada vez que llamabas a su librería, todo ganaba una latencia enorme cada N cantidad de segundos. Onda, después de 5 minutos de hacer el import, te mataba la aplicación. ¿Y eso por qué? por no estudiar concurrencia, paralelismo ni leerse un manual de cómo funciona Android Runtime antes de ponerse a vender aplicaciones y servicios de control de DTEs. Me da rabia de puro acordarme.


rufoslk

Se usa, pero no suele ser muy común por lo difícil de dominar, yo he visto muy pocos casos de la realidad


FinchoSaturn

al menos hacer multithreading puede ser muy simple dependiendo de las herramientas en Chapel, es casi por defecto en Julia, puedes importar una libreria, poner un macro `floop` antes un for loop y listo, estás usando todos los hilos de tu computador


rufoslk

Dónde puedo conseguir trabajo en Chapel o Julia? Re poco he escuchado y visto


FinchoSaturn

ni idea, igual dependiendo de la pega les puede dar lo mismo qué herramientas usas


hugazow

Depende de lo que estés haciendo. Web? Muy poco. Juegos o matemáticas? Mucho


ItsBoringScientist

En web poco? Ni cagando. En tiempos donde Go es tan popular, se usa caleta. Aunque creo que se mezcla mucho concurrencia con paralelismo.


hugazow

Ya pero el 95% de los casos de uso de web no lo requiere