Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    C, C++ e programmazione parallela

    Ciao a tutti,

    Di quanto può essere incrementata la potenza di calcolo di un pc usando questa tecnologia hardware:

    http://www.nvidia.it/object/cuda-par...puting-it.html

    perché questo tipo di strumento funziona solo con C e C++ e non su JAVA?

    Come si può fare per utilizzare qusta tecnologia anche su JAVA?

    Si ha davvero un salto prestazionale oppure no?

    Ciao e grazie
    Più pratica in futuro...

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Questo non è un quesito tecnico per un codice C++ ma una richiesta di consulenza ... e che c'entra Java in questa sezione?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    Di quanto può essere incrementata la potenza di calcolo di un pc usando questa tecnologia hardware:

    http://www.nvidia.it/object/cuda-par...puting-it.html
    Da vari test, su alcuni algoritmi facilmente parallelizzabili ( perchè non tutti gli algoritmi ottengono migliori prestazioni con quella tecnologia ), fino a 100 volte circa.

    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    perché questo tipo di strumento funziona solo con C e C++ e non su JAVA?
    perchè cuda usa compilatori appositi, in pratica cuda è un superset di c, c++ e fortran ( gli unici linguaggi supportati dai compilatori cuda )


    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    Come si può fare per utilizzare qusta tecnologia anche su JAVA?
    se vuoi usare il gpgpu con java, devi rivolgerti a tecnologie concorrenti come opencl

    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    Si ha davvero un salto prestazionale oppure no?
    si, ma solo per quelle operazioni che possono essere eseguite in parallelo, tipo operazioni matematiche su matrici e vettori

  4. #4
    1) Azz... 100 volte è un bel numero! Guardate questa Tesla K40, costa 7000 euro!
    http://www.nvidia.it/object/tesla-server-gpus-it.html
    http://www.amazon.it/dp/B00H52Q1YU/r...SIN=B00H52Q1YU


    2) Non conosco il c++ mi spiegheresti tecnicamente cosa si tratta di fare per sfruttare tutta questa potenza? Spiegalo come fossi un banbino di 10 anni, anche se ormai sono più grandicello.

    3) Nomino java perché io conosco java e c++ non l'ho ancora studiato. Quindi con java, in soldoni, si tratterebbe di includere nel proprio codice una libreria, capirne l'utilizzo e la sintassi e riscrivere il proprio codice, bene, interessante!

    4) Si possono anche usare le concurrency utilities di java che già conosco per sfruttare il parallelismo?
    Più pratica in futuro...

  5. #5
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio

    2) Non conosco il c++ mi spiegheresti tecnicamente cosa si tratta di fare per sfruttare tutta questa potenza? Spiegalo come fossi un banbino di 10 anni, anche se ormai sono più grandicello.
    Niente di che. CUDA fornisce delle istruzioni e delle annotazioni in più per il C++, oltre ad un compilatore e una serie di librerie. Il programma C++/Cuda viene compilato in linguaggio macchina e le librerie cuda si occupano di eseguire i kernel ( che sarebbero le routine che gireranno sulla gpu ) sulla gpu.

    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    3) Nomino java perché io conosco java e c++ non l'ho ancora studiato. Quindi con java, in soldoni, si tratterebbe di includere nel proprio codice una libreria, capirne l'utilizzo e la sintassi e riscrivere il proprio codice, bene, interessante!
    con java si tratta di usare una libreria come jocl http://www.jocl.org/

    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    4) Si possono anche usare le concurrency utilities di java che già conosco per sfruttare il parallelismo?
    no, perchè non supportano il gpgpu

  6. #6
    grazie mille, tutto molto interessante, tu paolino usi questa tecnologia? in che ambito?
    Più pratica in futuro...

  7. #7
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    grazie mille, tutto molto interessante, tu paolino usi questa tecnologia? in che ambito?
    La uso principalmente per simulare reti neurali. Comunque uso OpenCL. Non che CUDA non vada bene, è che è una tecnologia proprietaria di Nvidia. Interessante ma limitata alle sole gpu Nvidia.

    Inoltre non è che sia la più adatta in ogni situazione. Laddove sono necessarie elevate prestazioni nel calcolo parallelo, si può optare per soluzioni hardware ( fpga ad esempio ).

  8. #8
    capisco mille grazie
    Più pratica in futuro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.