arduino multicore

ciao a tutti :slight_smile:
secondo voi è possibile utilizzare più ATmega come uno solo?
cioè se io li collego via i2c o seriale li posso far comunicare ma dovrei ceare 2 programmi quello che volevo sapere io è se si può utilizzare due ATmega "fusi" tra loro ottenendo in totale un unico "ATmega" più potente.
spero di essere riuscito a spiegarmi :slight_smile:

Parli di fantascenza.
Puoi fare collaborare 2 ATmega con dei Sketch opportuni su ciascuno usando uno come master e uno o piú come slave.
Non é previsto un funzionamento nativo paralello o che suddividono lo sketch tra di loro.

Anche nei PC una CPU multicore ha bisogno di software che possa usare piú core in contemporanea. Se non puó farlo usa solo una dei presenti core.

Ciao UWe



Add some jumper wires for chip-to-chip SPI, I2C, or UART-UART comm's. Bare boards $5 mailed to US locations. Kits, assembled boards, available upon request.
Crossroads

Hi Bob, how are you? :wink:
Lupo95 didn't ask if he could find an Arduino-compatible with one ore more MCUs like your board but having a system in which chips could cooperate, that means an SMP architecture. But, as Uwe explained, this is not as simple as it seems

Doing fine Leo.
The google translation wasn't as clear as I thought then.

vabbè ci speravo :smiley:

Volevi fare calcolo parallelo?
Pensa a quanto tempo ci vuole per spostare una calcolo da un micro all'altro attraverso ISP e pensa che non puoi usare codice C nativo, ma devi invetarti un protocollo e su questo operare solo alcuni calcoli, non è proprio possibile sfruttarlo con il fine primario, ma si può fare per capriccio.

Più utile del calcolo parallelo è la distribuzione delle funzionalità, es un micro dedicato per tastieta display e led e buzzer e l'altro per il progetto.
Ma ci deve essere più di un valido motivo per scegliere questa strada, che ha un costo in denaro in più, ma anche un costo di tempo maggiore sviluppo software.

Ciao.

MauroTec:
Più utile del calcolo parallelo è la distribuzione delle funzionalità, es un micro dedicato per tastieta display e led e buzzer e l'altro per il progetto.

Infatti con micro non predisposti per essere usati in parallelo, p.e. gli Xeon di Intel, o micro nativamente multicore, non è possibile parlare di elaborazione parallela, però è possibile parlare di architettura multi processore dove ogni micro ha dei compiti ben precisi scaricando il micro principale dai compiti gravosi, p.e. polling e gestione di bus di comunicazione ad alta velocità.

Io sapevo invece che era possibile farlo anche con processori non previsti per il calcolo parallelo, c'erano delle estensioni per Linux per far cooperare più macchine anche di diversa potenza, collegate via ethernet.
L'hanno fatto anche con il RaspberryPI
http://www.southampton.ac.uk/mediacentre/features/raspberry_pi_supercomputer.shtml
e persino con le PS3.

Farlo con dei micro ad 8bit e con soli 2k di ram però non porterebbe da nessuna parte visto che sarebbero surclassati da micro più moderni.

Se si ha bisogno di potenza perché non passare alla DUE?

perchè sono negato in elettronica e so che la fulminerei subito ]:smiley:

si può creare un layer SW per fare una cosa tipo le remote procedure call

però dubito che la cosa abbia un senso.

Credo che, vista la potenza in campo e la complessita possibile dei programmi, molto meglio una soluzione ad hoc