Software

La evolución de WaveMe: Herramientas y técnicas para el máximo rendimiento

Caja de herramientas WaveMe: Mejora de la metrología óptica y capacitación de los usuarios

La caja de herramientas WaveMe ejemplifica varios principios básicos que tengo en gran estima: hacer avanzar la metrología óptica, sacar el máximo partido de los equipos estándar y ofrecer a los usuarios un mayor control sobre sus herramientas. Un avance reciente subraya aún más nuestro compromiso con estos principios. WaveMe es flexible, ya que permite a los usuarios integrar sus conocimientos de programación en su pipeline. Sin embargo, la programación de bajo nivel en un lenguaje como C tiene sus dificultades y, por desgracia, la biblioteca Pylon, necesaria para utilizar la cámara, impide utilizar uno de los atajos más útiles para escribir programas estables. Por lo tanto, para los usuarios de Linux, WaveMe tiene la opción de ejecutar la cámara como una aplicación de servidor aislada, lo que devuelve la posibilidad de ejecutar las herramientas avanzadas de análisis de programas que existen en Linux.

Profundizando: Las ventajas de aislar la interfaz de la cámara

There are myriad advantages to separating the camera interface into its own application. Let’s unpack these:

  • Compatibilidad con las herramientas ASAN: La biblioteca de cámaras original planteaba limitaciones, en concreto, dificultaba el uso de saneadores de direcciones. Dado que WaveMe no es solo una herramienta, sino también una plataforma que permite a los usuarios aumentar sus capacidades integrando sus herramientas personalizadas, la necesidad de accesibilidad a las herramientas ASAN es primordial.
  • La interfaz de la cámara, especialmente con la interfaz GigE, requiere mucho tiempo. Intentar ejecutar WaveMe con una herramienta como Valgrind es sencillamente imposible. Cuando la interfaz de la cámara se ejecuta en una aplicación de servidor aislada, se reduce significativamente la carga y la presión sobre las secciones de tiempo crítico. Esto permite realizar análisis de rendimiento más eficaces utilizando herramientas como Valgrind. Por ejemplo, ahora los usuarios pueden analizar las secciones de tiempo crítico o evaluar el uso de la caché sin las interferencias que se producirían normalmente si la interfaz no estuviera aislada.
  • Disponibilidad de plataformas: Por ahora, el servidor de la cámara es exclusivo de Linux. Sin embargo, la puerta está abierta a posibles ampliaciones. En caso de que la comunidad de usuarios de Windows demuestre que existe demanda, la migración a la plataforma Windows está en el horizonte.
  • Consideraciones arquitectónicas: El servidor de la cámara cuenta con una arquitectura sofisticada. Su complejidad superaba las capacidades ofrecidas por las primitivas de sincronización de la biblioteca GLIB-2.0, un componente fundamental de la caja de herramientas WaveMe. Esta limitación técnica concreta fue un factor determinante para su actual disponibilidad exclusiva para Linux.

Una breve inmersión en los desinfectantes para direcciones

For those who may not be intimately familiar with address sanitizers, let’s shed some light on their functionality. Essentially, address sanitizers serve as vigilant sentinels, detecting instances where code—be it yours or mine—reads or writes outside of allocated boundaries. Complementing this is a memory leak analyzer, which diligently records a summary upon program termination. Such tools are not just useful; they’re indispensable for crafting high-quality code.

Optimización de WaveMe: Valgrind, STM32-F407 e imágenes optimizadas

Our exploration of tools and their impact on WaveMe doesn’t end with address sanitizers. In the realm of Linux, another instrumental tool emerges: Valgrind. For developers eyeing the pinnacle of code efficiency, Valgrind is indispensable. It has played a pivotal role, especially when the Shack-Hartmann code for WaveMe was being tailored for the STM-32F407 platform—a system powered by a 168MHz ARM Cortex 4 CPU and 96 kB of RAM dispersed across various sections.

Our rigorous optimization strategies yielded remarkable results on this platform. To put it in perspective, analyzing 630 spots and executing modal analysis up to Z16 was completed in just 3.3ms. The modal analysis’s backbone was a Singular Value Decomposition algorithm from the 1970s, chosen specifically for its compact nature that snugly fit the platform’s constraints.

Yet, WaveMe’s journey of enhancement and user-centricity doesn’t stop there. Recognizing the limitations of many lab computers, which often aren’t the most high-performance machines within an organization, we took further steps. The camera server’s introduction is a response to the challenges of streaming voluminous images—a task that many systems grapple with. By segregating this operation to an independent process, we’re ensuring smoother performance and reduced strain on primary computational resources. This strategic move is a monumental stride in WaveMe’s evolution. Rest assured, whether one delves deep into WaveMe or merely interacts with the toolbox, the palpable benefits of our recent innovations are ready to enhance the user experience.

jarek

Entradas recientes

EUV y el estado de la litografía

Litografía óptica de alta gama, de qué se trata La litografía EUV parece ciencia ficción hecha realidad: espejos con suavidad a nivel atómico, luz...

hace 2 semanas

Óptica física en la GPU Nvidia

Intro Durante la mayor parte de mi carrera en óptica, he simulado imágenes de moduladores espaciales de luz y, sobre todo, de SLM...

hace 3 semanas

Visión instantánea

Por qué WaveMe ¿Busca una solución que incluya una cámara de visión? ¿Desea una aplicación de alto rendimiento que le permita...

hace 2 meses

El dilema del integrador de sistemas

Este Tech-Talk trata sobre el desarrollo tecnológico en general, pero quizá más concretamente sobre el desarrollo tecnológico incremental. Obviamente, está influida por...

hace 2 meses

¿Puede la IA hacer tu código?

Supongo que estoy en una misión, una misión para moderar el asombro que la gente parece sentir por lo relacionado...

hace 3 meses

Modelado físico y OSS

Introducción Con esta charla técnica, me gustaría ofrecer algunas perspectivas sobre la construcción de un marco de modelado físico con Open...

hace 5 meses