I dispositivi di elaborazione dei bordi sono sempre più vitali nel trattamento dei dati vicino alla fonte, riducendo la latenza e l'utilizzo della larghezza di banda. Un fattore chiave nel migliorare le loro prestazioni è ottimizzare gli algoritmi di selezione utilizzati all'interno di questi dispositivi. La selezione più veloce dei dati porta a un'analisi più rapida e al processo decisionale, essenziale per applicazioni come veicoli autonomi, sensori IoT e analisi in tempo reale.

L'importanza di una selezione efficiente in dispositivi di bordo

I dispositivi di bordo, in cui le risorse come la potenza e la memoria della CPU sono limitate, scegliendo il metodo di selezione giusto può fare una differenza significativa.

Ordinazione comune Algoritmi utilizzati in Edge Computing

La scelta dell'algoritmo giusto dipende dalle caratteristiche dei dati e dai vincoli hardware. Di seguito esaminiamo quattro algoritmi di selezione ampiamente utilizzati, i loro profili di prestazioni tipici e le considerazioni specifiche per la distribuzione dei bordi.

Ordinare rapidamente

La scelta rapida dei dati è rinomata per la sua complessità temporale media di O(n log n) e per la partizione in-place, rendendolo efficiente dalla memoria. Nei dispositivi di bordo, la dipendenza rapida della specie sulla ricorsione può essere problematica perché ogni chiamata ricorsiva consuma lo spazio di stack.

Chirurgia

Il suo principale svantaggio è la necessità di una memoria aggiuntiva proporzionale alla dimensione dell'ingresso (O(n) dello spazio ausiliario). Per i dispositivi di bordo con budget di memoria stretti, questo può essere proibitivo. Tuttavia, negli scenari in cui i dati vengono memorizzati in strutture collegate (ad esempio, elenchi collegati o descrittori di file), si può eseguire un'operazione di fusione senza l'accesso casuale, che è il vantaggio dei dati

Tipo di sapone

Inoltre, la scelta di Heap è un algoritmo in-place con O(n log n) la complessità del tempo peggiore e O(1) spazio extra. Evita la ricorsione, rendendolo impilabile. Il trade-off è che il tipo di heap non è stabile, e i suoi fattori costanti sono più alti di una rapida sorta di operazione binaria del heap.

Contare il tipo

La conta di 3 intervallo di tempo è un algoritmo non comparabile che ordina gli interi in O(n + k), dove k è la gamma di valori di input. Richiede un allineamento ausiliario di dimensione k, limitando la sua applicabilità a situazioni in cui la gamma è piccola.

Strategie per ottimizzare la selezione in dispositivi Edge

Oltre alla scelta dell'algoritmo, diverse strategie di livello di sistema possono migliorare notevolmente le prestazioni di selezione nei dispositivi di elaborazione dei bordi.

Selezione di Algorithm Basato su caratteristiche dati

Gli sviluppatori dovrebbero profilare la dimensione dei dati, la distribuzione e il tipo prima di selezionare un algoritmo di selezione. Per piccoli set di dati (meno di 64 elementi), il tipo di inserimento spesso batte algoritmi di divisione e di controllo a causa di una maggiore sovraccarico. Per i array di interi di medie dimensioni con gamma nota, il conteggio è ottimale.

Preelaborazione dei dati per ridurre la complessità

Un'altra tecnica comune è filtrante]: rimuovere i dati duplicati o irrilevanti prima di ordinare. Ad esempio, un sensore di manutenzione predittivo che genera migliaia di punti di dati al secondo può solo bisogno di ordinare le prime 100 anomalie.

Lavorazione parallela su soc a bordo multi-core

Molti dispositivi di bordo moderni dispongono di CPU multi-core (ad esempio, serie ARM Cortex-A). La selezione parallela può sfruttare questi core per ridurre il tempo di parete-clock. Un approccio tipico divide l'array di input in blocchi, ordina ogni chunk indipendentemente (ad esempio, con rapido ordinamento dei dati) e poi fonde i blocchi ordinati.

Gestione della memoria per prevenire i colli di bottiglia

Gli algoritmi di smistamento spesso soffrono di una scarsa localizzazione della cache, che porta a bancarelle della CPU. Su dispositivi di bordo con piccole cache (tipicamente 16–32 KB L1, 128–512 KB L2), le mancanze della cache sono costose. Gli algoritmi di memorizzazione extra-obblivious come la selezione di grandezza o il campione possono migliorare la localizzazione selezionando i dati in blocchi che si adattano alla strategia

Selezione su Hardware Edge

Per illustrare, considerare tre dispositivi di bordo comuni: un Nordic Semiconductor nRF52840 (Cortex-M4, 64 MHz, 256 KB di monitoraggio), un Raspberry Pi 4 (Cortex-A72, 1,5 GHz, 2 GB di RAM) e un NVIDIA Jetson Nano (Cortex-A57 + GPU, 4 GB di RAM).

Case study: Ordinazione in Autonomo Trattamento dei Dati del Veicolo

I veicoli autonome elaborano i petabyte dei dati del sensore all'ora, ma il computer Edge AI ha stretti vincoli in tempo reale. Un compito chiave è ordinare i dati del cloud del punto da LiDAR per trovare l'ostacolo più vicino. Il cloud del punto contiene milioni di x,y,z coordinate, spesso memorizzate come 32-VI-bit floats.

Accelerazione hardware per la selezione

Per i dispositivi di bordo con carichi fissi, gli acceleratori hardware possono offload smistamento completamente, liberando la CPU per altre attività. PAMGAs (Field-Programmable Gate Arrays) può implementare le reti di smistamento che sono deterministiche ed estremamente veloci.

Apprendimento adattivo e macchina–Scelta guidata

Un altro tempo di ricerca è stato utilizzato per l'apprendimento automatico predivisione dell'algoritmo di selezione ottimale per un dato set di dati. Un classificatore leggero (ad esempio, albero di decisione) che corre sul bordo può esaminare le caratteristiche dell'array di input—dimensioni, entropia, gamma min/max, e se è già quasi ordinata—e selezionare il tempo di esecuzione previsto salvato.

Efficienza energetica e considerazioni in tempo reale

I dispositivi Edge sono spesso alimentati a batteria e devono soddisfare le scadenze in tempo reale morbide o dure. L'ordine può essere un consumatore di energia significativo, soprattutto se causa la CPU di rimanere attivo più a lungo. Uno studio pubblicato in IEE Transazioni su Computing sostenibile] ha scoperto che utilizzando una sorta di cache-optimized merge sorting di una bolla naive ridotta energia per processore di 60% su un processore

Tendenze emergenti e direzioni future

In-memory computing] utilizzando i memristori o il firmware di elaborazione-in-memory (PIM) può ordinare i dati direttamente nella matrice di archiviazione senza spostarlo alla CPU. Questo è l'ideale per i set di dati molto grandi (ad esempio, 10 MB) che altrimenti sovrastano RAM di bordo.

Grazie all’ottimizzazione degli algoritmi di selezione dei bordi, l’ottimizzazione degli algoritmi di selezione rimarrà un’area di messa a fuoco critica. Grazie all’implementazione delle strategie delineate, dall’attenta selezione degli algoritmi e dalla preelaborazione dei dati al processo parallelo, all’accelerazione hardware e all’adattamento all’apprendimento automatico, i sviluppatori possono garantire un’elaborazione dei dati più rapida e affidabile, sbloccando nuove possibilità per applicazioni basate sui bordi in vari settori.