---
title: "LordOfRings"
url: "https://edoardo.anteprime.edoardogabrielli.com/it/progetti/lordofrings"
lang: "it"
updated: "2026-10-31"
---

# LordOfRings

> LordOfRings: un metodo per individuare anelli in una matrice sparsa, con algoritmo di Taubin semi-parallelo e GPU.

## LordOfRings

Trovare gli anelli in una matrice sparsa, usando la GPU.

## Il problema

In una matrice quasi vuota, dove il valore 1 disegna degli anelli, bisogna ricavare raggio e centro di ciascun anello e capire a quale appartiene ogni punto. Con tanti punti, farlo in modo ingenuo è lento.

![Anelli individuati in una matrice sparsa](https://edoardo.anteprime.edoardogabrielli.com/media/originals/2026/10/ff2193bc58004ab68e8c9ec148e58478/lordofrings.png)

## Cosa ho costruito

### 1. Adattamento del cerchio

Un algoritmo di Taubin semi-parallelo per stimare raggio e centro di ogni anello.

### 2. Separare gli anelli

Il teorema di Tolomeo sui quadrilateri inscritti in una circonferenza serve a distinguere i punti di anelli diversi.

### 3. Calcolo su GPU

Il modulo valuta raggio e centro di ogni anello con l'accelerazione della GPU; esiste anche una versione senza GPU.

### 4. Documentazione

Il progetto ha una documentazione con tutorial.

### Il mio ruolo

Progetto universitario sviluppato in collaborazione: il repository è pubblicato sul profilo GitHub di Sara-a-r.

### Tecnologie

Python · CUDA · GPU · documentazione online

> Portare un algoritmo sulla GPU obbliga a pensarlo in modo diverso, in parallelo fin dall'inizio. Ho imparato a misurare prima di ottimizzare e a tenere una versione semplice di riferimento con cui confrontare i risultati.

— Cosa ho imparato

[Codice su GitHub](https://github.com/Sara-a-r/LordOfRings) · [Documentazione](https://lordofrings.readthedocs.io/en/latest/)

## Un calcolo numerico lento

Scrivimi il problema: spesso conviene cambiare l'algoritmo prima dell'hardware.

[Scrivimi](https://edoardo.anteprime.edoardogabrielli.com/it/contatti)

[← Tutti i progetti](https://edoardo.anteprime.edoardogabrielli.com/it/progetti)