Software

L’evoluzione di WaveMe: strumenti e tecniche per prestazioni al top

WaveMe Toolbox: Potenziare la metrologia ottica e dare più potere agli utenti

La toolbox WaveMe esemplifica diversi principi fondamentali che considero di grande importanza: il progresso della metrologia ottica, il massimo sfruttamento dell’attrezzatura standard e l’offrire agli utenti un maggiore controllo sui propri strumenti. Una recente evoluzione sottolinea ulteriormente il nostro impegno nei confronti di questi principi. WaveMe è flessibile, poiché consente agli utenti di integrare le proprie conoscenze software nel proprio flusso di lavoro. Tuttavia, la programmazione a livello di basso livello in un linguaggio come C presenta dei problemi e, purtroppo, la libreria Pylon, necessaria per utilizzare la fotocamera, impedisce di utilizzare uno dei più utili shortcut per scrivere programmi stabili. Pertanto, per gli utenti Linux, WaveMe offre la possibilità di eseguire la fotocamera come applicazione server isolata, che offre la possibilità di utilizzare gli strumenti avanzati per analizzare i programmi presenti su Linux.

Diving Deeper: I vantaggi dell'isolamento dell'interfaccia della fotocamera

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

  • Compatibilità con ASAN Tools: La libreria originale di strumenti fotografici presentava limitazioni, in particolare impediva l'utilizzo di strumenti di sanificazione degli indirizzi. Poiché WaveMe non è solo uno strumento, ma anche una piattaforma che consente agli utenti di ampliare le sue funzionalità integrando i propri strumenti personalizzati, la necessità di accessibilità agli strumenti di ASAN è fondamentale.
  • L'interfaccia della videocamera, soprattutto con l'interfaccia GigE, è molto critica dal punto di vista del tempo. Provare a eseguire WaveMe tramite un tool come Valgrind è semplicemente impossibile. Quando l'interfaccia della videocamera viene eseguita in un'applicazione server isolata, riduce significativamente la pressione sulle sezioni critiche dal punto di vista del tempo. Ciò consente di analizzare in modo più efficace le prestazioni utilizzando strumenti come Valgrind. Ad esempio, gli utenti possono ora analizzare le sezioni critiche dal punto di vista del tempo o valutare l'utilizzo della cache senza l'interferenza che normalmente si verrebbe a verificare se l'interfaccia non fosse isolata.
  • Disponibilità della piattaforma: al momento, il server della videocamera è dedicato esclusivamente a Linux. Tuttavia, la possibilità di espansione è aperta. Qualora si manifestasse una richiesta da parte della comunità utenti Windows, la migrazione alla piattaforma Windows è prevista nel prossimo futuro.
  • Considerazioni architettoniche: Il server della fotocamera vanta un'architettura sofisticata. Le sue complessità superavano le capacità offerte dalle primitive di sincronizzazione della libreria GLIB-2.0, componente fondamentale della toolbox WaveMe. Questa particolare limitazione tecnica è stata un fattore determinante per la sua attuale disponibilità esclusivamente su Linux.

Un breve sguardo sugli igienizzanti per l'indirizzo

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.

Ottimizzazione di WaveMe: Valgrind, STM32-F407 e Streamlined Imaging

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

Articoli recenti

Usare BeamNotes

Le scorciatoie di BeamNotes WaveMe indirizzano i tasti di scelta al plug-in attualmente selezionato e la finestra del compositore li registra. Questo è integrato nel...

3 settimane già

CUDA o WebGPU?

Il passaggio al calcolo GPU è molto importante e non è guidato solo dall’intelligenza artificiale. Le capacità di elaborazione parallela dei moderni GPU superano…

7 mesi già

Informazioni: Glass Finder

L'applicazione Glass Finder è un'estensione di un altro progetto che mira a ampliare il set di servizi già offerti da…

10 mesi già

RUST – Non solo per i programmatori

Rust offre un'interessante opzione linguistica per la modellazione in ottica e fisica. Date un'occhiata perché Rust potrebbe essere una soluzione…

1 anno già

È silenzioso, per una ragione

Sulla questione lavoriamo. Potreste notare che il blog è stato un po’ silenzioso ultimamente: questo è un focus, non un trascuro. A Senslogic…

1 anno già

CAD – Non è solo per i meccanici, lo sa

Introduzione - Ridisegnare il CAD Quando la maggior parte delle persone sente il termine “CAD”, pensa subito a un software per la progettazione meccanica tridimensionale, come SolidWorks, AutoCAD o…

1 anno già