Quote:
Originariamente inviato da Rubberick
eh no, io dico proprio come uso bruto senza dover scrivere una virgola di codice in +...
|
difficile, anche perchè i 60 core non sono nè di classe Core nè Atom ma a quanto pare si tratta di derivati del P5 (pentium) (quindi niente MMX, (S)SSE-x , niente AVX, e pare niente X87 legacy) a cui è stata aggiunta la compatibilità X64 e un' unità SIMD a 512 bit (IMCI)
quindi come minimo (e a patto di avere caso di codice C / C++ e di appoggiarsi ai tool e performance libraries intel - che incapsulino l' assembly ottimizzato per lo specifico core target) è necessario aggiungere delle direttive che istruiscano il compilatore a fare uso dell' unità IMCI piuttosto che delle varie SIMD attualmente mainstream, e ricompilare
Quote:
nowadays il problema continua ad essere la pigrizia enorme con cui le software house rilasciano compatibilità con l'hardware sottostante
|
ma devi tenere presente che il target a cui questo oggetto è indirizzato non è il sw mainstream, ma quegli ambiti in cui il sw è scritto una tantum per l' architettura del supercomputer / cluster in uso
in questo senso, far girare codice preesistente con minime modifiche è un notevole vantaggio rispetto all' alternativa finora disponibile - doverlo rivedere integrarlmente per migrarlo a soluzioni GPGPU con annesso cambio di paradigma, cosa che in effetti equivale a un progetto sw a sè stante
Quote:
se è utilizzabile da chiunque come processori extra x86 "quelli nel task manager" (stiamo parlando ovviamente di un potenziale inferiore a quella che potrebbe essere na mobo quad socket con varie cpu multicore seria) sarebbe una "win" per tutti...
|
non funziona così...
in modalità hosted è una periferica PCI Express come un' altra, gestita attraverso driver ed enumerata ad uso delle applicazioni che necessitano di un compute acccelerator - presumibilmente le applicazioni faranno richiesta via librerie e driver di istanziare 1...60 thread di calcolo sul Phi, al che librerie e driver uploaderanno alla scheda segmenti di codice e dati su cui operare - più o meno come adesso funziona per gli shader, ma con codice X86-64+IMCI piuttosto che shader assembly proprietario
in modalità clustered è un nodo indirizzabile con un suo indirizzo IP - in questo caso può esserci maggiore flessibilità visto che molti sistemi facenti uso di calcolo distribuito implementano meccanismi di comunicazione e sincronizzazione interni, quindi basterebbe avviare i thread di calcolo sulla scheda (ma mancando come pare uno storage locale da cui avviare il firmware sarà cmq l' host a occuparsi di farne l' upload, di nuovo attraverso i driver da parte di un processo di controllo )
o in alternativa può essere il sistema operativo a farlo, allora l' OS dovrà supportare protocolli di clustering e thread migration cluster-wise
ma quello che tutti questi casi hanno in comune è che in nessuno dovresti vedere processori (logici) aggiuntivi nel task manager, perchè non si tratterebbero di processori "locali"