Miglior linguaggio di programmazione per cicli for annidati

di il
9 risposte

Miglior linguaggio di programmazione per cicli for annidati

Buonasera,
qual'è secondo voi il miglior linguaggio di programmazione da utilizzare per il problema indicato nel titolo (in termini di tempi ovviamente)? Si parla di circa 50 cicli for annidati, ho letto che ad esempio Matlab risulta lento per questo genere di operazioni.
Grazie.

9 Risposte

  • Re: Miglior linguaggio di programmazione per cicli for annidati

    Assembler
  • Re: Miglior linguaggio di programmazione per cicli for annidati

    La domanda non ha senso.
    Intanto,

    PERCHE' 50 cicli annidati?

    non serve rispondere!

    Ma, ovviamente, serve un RAGIONAMENTO per capire come mai ci sia la necessita' di annidare 50 cicli.
    Esiste SICURAMENTE una soluzione alternativa, ma per trovarla serve affrontare il problema da un'altro punto di vista.

    Il secondo punto e' che NON ESISTE IL MIGLIOR LINGUAGGIO DI PROGRAMMAZIONE:
    ogni linguaggio e' nato/e' stato progettato, per risolvere specifiche categorie di problemi usando specifici paradigmi di programmazione.

    Se e' vero che tutti i linguaggi hanno la STESSA espressivita' (TUTTI si possono usare per fare le STESSE cose), e' anche vero che alcuni sono piu' facili da usare di altri.

    ORA, anche SUPPONENDO che non ci sia modo di ovviare al problema dei 50 cicli annidati (MA ESISTE CERAMENTE), entra in gioco il problema su CHE COSA si cicla, e CHE COSA viene manipolato all'interno di ogni ciclo.

    Anche SUPPONENDO che il ciclo sia fatto un un indice numerico (in cui l'Assembler non ha nessunissimo problema), se, all'interno del ciclo, si manipolano strutture dati COMPLESSE, lavorare in assembler sarebbe un suicidio.

    Ma non solo: nel 99.999% dei casi, il tempo impiegato dal codice che implementa il ciclo, e' (NON dovrebbe essere, se uno ha fatto le cose per bene) assolutamente infinitesimo rispetto al tempo necessario ad eseguire il PASSO del ciclo.

    Infine, dopo tutta questa elucubrazione mentale, facciamo una stima:
    1) cicli di 2 elementi ogn'uno, per 50 livelli, vuol dire 2^50 passi = 1.13*10^15 passi. Sono UN MILIONE DI MILIARDI di passi.
    2) supponiamo un pc di fasci alta, con CPU a 4Ghz, ed un'op per ogni ciclo (4*10^9 operazioni/secondo). Servono circa 281500secodi, pari a 3 giorni e 6 ore di calcolo.
    SOLO PER CICLARE!

    Il che vuol dire, che per fare qualcosa di VAGAMENTE intelligente, si passa dai 6 giorni a MESI (semplicemente passando da UN CICLO di clock per operazione, a 4 CICLI di clock, si passa da UNA a QUATTRO settimane), oppure serve un bel po' di potenza di calcolo.
  • Re: Miglior linguaggio di programmazione per cicli for annidati

    C, praticamente identico ad assembly (sotto questo profilo)
  • Re: Miglior linguaggio di programmazione per cicli for annidati

    Proporrei un'alternativa ANCORA MIGLIORE

    carta e matita + cervello

  • Re: Miglior linguaggio di programmazione per cicli for annidati

    Brute force? Ahi ahi ahi ...
  • Re: Miglior linguaggio di programmazione per cicli for annidati

    migliorabile ha scritto:


    Ma, ovviamente, serve un RAGIONAMENTO per capire come mai ci sia la necessita' di annidare 50 cicli.
    Esiste SICURAMENTE una soluzione alternativa, ma per trovarla serve affrontare il problema da un'altro punto di vista.
    Già. Poi, magari, grattando viene fuori (come suggerisce implicitamente il nostro ottimo Oregon) che si tratta del solito banale problema combinatorio di generazione esaustiva, per il quale esistono geniali algoritmi loopless o CAT semplicemente inconcepibili per qualsiasi beginner e per una pletora di practitioners, ma che comunque richiedono qualche mese di elaborazione per determinate ampiezze... o libero accesso ad un cluster di Z13 e in ogni caso qualche giorno/settimana di pazienza.
  • Re: Miglior linguaggio di programmazione per cicli for annidati

    50 cicli annidati non li ho mai visti in 20 anni di programmazione, giusto per curiosità poer cosa ti servono?
  • Re: Miglior linguaggio di programmazione per cicli for annidati

    Se la velocità d'esecuzione è così critica che si vedono le differenze tra un linguaggio e l'altro, cerca nei mercatini dell'usato un Cray X. Con un po' di Assembler il gioco è fatto...
  • Re: Miglior linguaggio di programmazione per cicli for annidati

    Non ho letto tutte le risposte, ma... Oddio 50 cicli annidati? Sai le bolle di pipeline!!! Il signor Duff del loop unroll si metterebbe a piangere XD XD XD

    Scherzi a parte, se puoi, se posti il codice o le specifiche del codice magari ti si da una mano, comunque io programmo dal 1993 e non ho mai visto 50 cicli annidati. Sono davvero curioso di sapere a che servono, molto probabilmente si può trovare un modo di risolvere il problema senza tutti quei cicli
Devi accedere o registrarti per scrivere nel forum
9 risposte