Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1

    quale linguaggio è più efficiente nei calcoli matematici?

    ciao dovrei scrivere un programma che faccia il più velocemente possibile calcoli matematici e confronti tra numeri (per risolvere con il metodo montecarlo gli integrali definiti).
    io solitamente programmo in python ma non è molto efficiente (essendo un linguaggio interpretato), cosa mi consigliate? io pensavo al C, c'è qualcosa migliore?

  2. #2
    Credo che il C vada bene; il massimo sarebbe l'assembly ma ormai i compilatori sono così efficenti che per scrivere codice più ottimizzato di loro serve una grandissima padronanza del linguaggio macchina.

  3. #3
    probabilmente per calcoli matematici il piu' veloce e' il fortran.

    p.s. python non e' un linguaggio interpretato
    PyGTK GUI programming
    un impegno concreto: eliminare la k dalle tastiere italiane

  4. #4
    grazie ad entrambi

    @KornShell, scusa il python che tipo di liguaggio é

  5. #5
    Originariamente inviato da suomi_viking_86
    @KornShell, scusa il python che tipo di liguaggio é
    E' un linguaggio compilato in bytecode
    PyGTK GUI programming
    un impegno concreto: eliminare la k dalle tastiere italiane

  6. #6
    Se preferisci rimanere in ambito C ti posso sengalare che qualche tempo fa avevo fatto dei banalissimi sorci per far lavorare un po' la cpu con i numeri (conta cento volte fino a un miliardo ed effettua semplici controlli sui numeri ottenuti, ecc) e utilizzando le ottimizzazioni del GCC (le stesse con cui ho compilato Gentoo, variano a seconda del processore) ho ottenuto, rispetto a una compilazione standard, un aumento di performance fino al 65%

  7. #7
    Tanto per farti un esempio, programma che conta 60 volte fino a un miliardo:

    codice:
    [maiosyet]@[alcibiade]-[~/Sorci/test_vel] $ ./prova.bin
    Sat Mar 12 20:17:38 2005
    Finito!
    
    Sat Mar 12 20:19:01 2005
    [maiosyet]@[alcibiade]-[~/Sorci/test_vel] $ ./prova2.bin
    Sat Mar 12 20:19:23 2005
    Finito!
    prova.bin - compilazione standard = 83s
    prova2.bin - ottimizzato per la mia cpu = 22s

    Edit: in questo caso ho compilato prova2.bin utilizzando solamente ottimizzazioni generiche specifiche per il mio processore

    Qui l'aumento di prestazioni è del 400% , anche se è chiaro che non sarà sempre così marcato...

    Inoltre, se te la sai gestire bene... notiamo che nel mio programma possiamo srotolare il loop con l'apposito parametro ( -funroll-all-loops) ottenendo...
    codice:
    [maiosyet]@[alcibiade]-[~/Sorci/test_vel] $ ./prova2.bin
    Sat Mar 12 20:22:13 2005
    Finito!
    
    Sat Mar 12 20:22:14 2005
    [maiosyet]@[alcibiade]-[~/Sorci/test_vel] $


    Puoi fare riferimento a questa pagina per informazioni dettagliate sulle ottimizzazioni del GCC
    http://gcc.gnu.org/onlinedocs/gcc-3....timize-Options

  8. #8
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    Originariamente inviato da KornShell
    p.s. python non e' un linguaggio interpretato
    Il fatto che sia interpretato è la prima cosa che viene detta del linguaggio...

    http://www.python.org/doc/Summary.html (nn una fonte a caso...)
    Python is an interpreted, int...
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  9. #9
    Dissento completamente, non e' in quel senso che va inteso, python viene compilato in bytecode prima di essere eseguito dalla VM.

    Li si intende che il codice scritto in un file di testo puo' essere passato alla VM direttamente senza compilazione perche' questa viene fatta in automatico.

    Python non e' un linguaggio interpretato.
    PyGTK GUI programming
    un impegno concreto: eliminare la k dalle tastiere italiane

  10. #10
    Non so, la differenza che fai tu è puramente accademica; io ho sempre sentito parlare di python come linguaggio interpretato, anche lo fonti ufficiali lo chiamano in questo modo. Capisco cosa vuoi dire ma non è il caso di confondere le idee agli altri.

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.