dei commenti al blog

  1. L'avatar di M.A.W. 1968
    • |
    • permalink
    In effetti, le partizioni (e le composizioni) sono un po' ovunque e spuntano fuori là dove meno ce le attendiamo: econometria, fisica, meccanica, chimica, teoria dei sistemi... oltre, ovviamente, alla "specialità della casa", ossia la matematica discreta.

    Basti pensare al loro ruolo fondamentale nei gruppi di permutazioni, a loro volta essenziali in molte teorie fisiche avanzate. Non a caso, uno dei pochissimi commenti a caldo in lingua italiana (al di là delle solite traduzioni di articoli sulle edizioni italiane di riviste straniere, pressoché dovute) all'annuncio dei risultati del gruppo di Ken Ono proveniva da un paio di fisici, che si occupano prevalentemente di teoria delle stringhe!

    Anche per questo le formule di cui abbiamo più volte discusso (e i relativi algoritmi) ricoprono un ruolo fondamentale...
  2. L'avatar di Windows M
    • |
    • permalink
    Davvero molto interessante, come già avevo commentato nel thread che hai linkato.
    Pare, però, che le partizioni di interi ti perseguitino
    aggiornamento da 10-04-2012 a 17:49 di Windows M (mistype)
  3. L'avatar di M.A.W. 1968
    • |
    • permalink
    Quote Originariamente inviato da AntonioG
    Bei tempi ...
    Ottimo lavoro, Antonio... e sì, quelli erano davvero bei tempi!
  4. L'avatar di AntonioG
    • |
    • permalink
    Questo il codice preparato in un file

    Blog.s65

    come sorgente per il mio Assembler ...

    codice:
    ;**************************************
    ; Codice "universale" per startup BASIC
    ;**************************************
            
    		.ORG $0801
    
    ;--------------------------------------
            .DW BASEND                    ; Indirizzo della prossima linea
            .DW 1996                      ; Numero di linea -> anno di stesura...
            .DB $9E                       ; Token per "SYS"
            .ASCII "2105:"                ; Indirizzo di avvio
            .DB $8F,$22                   ; Token per "REM" + '"'
    ; Rendo illeggibile il listing con una serie di DEL ($14)
            .DB 20,20,20,20,20,20,20,20,20,20,20,20
    ; Solo la stringa seguente apparira' nel listato:
            .ASCIZ "(C) CASA MIA SOFTWAREHOUSE***"
    BASEND  .DW 0                         ; Terminatore di programma
    ;--------------------------------------
    ;**************************************
    ;** Qui inizia il nostro sorgente    **
    ;**************************************
    
            .END
    e questo il risultato nel file

    Blog.l65

    (naturalmente oltre al file binario Blog.b65)

    codice:
    D64ASM - Development Assembler for C64
    Version 1 revision 47
    (C) Antonio G, 2011
    
     Line #  Addr   Value       Label         Line
    00000001 0000                                                                           ;**************************************
    00000002 0000                                                                           ; Codice "universale" per startup BASIC
    00000003 0000                                                                           ;**************************************
    00000004 0000                                                                           
    00000005 0000 *=0801                             .ORG     $0801                         
    00000006 0801                                                                           
    00000007 0801                                                                           ;--------------------------------------
    00000008 0801 37 08                              .DW      BASEND                        ; Indirizzo della prossima linea
    00000009 0803 CC 07                              .DW      1996                          ; Numero di linea -> anno di stesura...
    00000010 0805 9E                                 .DB      $9E                           ; Token per "SYS"
    00000011 0806 32 31 30 35                        .ASCII   "2105:"                       ; Indirizzo di avvio
                  3A 
    00000012 080B 8F 22                              .DB      $8F,$22                       ; Token per "REM" + '"'
    00000013 080D                                                                           ; Rendo illeggibile il listing con una serie di DEL ($14)
    00000014 080D 14 14 14 14                        .DB      20,20,20,20,20,20,20,20,20,20,20,20
                  14 14 14 14 
                  14 14 14 14 
    00000015 0819                                                                           ; Solo la stringa seguente apparira' nel listato:
    00000016 0819 28 43 29 20                        .ASCIZ   "(C) CASA MIA SOFTWAREHOUSE***"
                  43 41 53 41 
                  20 4D 49 41 
                  20 53 4F 46 
                  54 57 41 52 
                  45 48 4F 55 
                  53 45 2A 2A 
                  2A 00 
    00000017 0837 00 00          BASEND              .DW      0                             ; Terminatore di programma
    00000018 0839                                                                           ;--------------------------------------
    00000019 0839                                                                           ;**************************************
    00000020 0839                                                                           ;** Qui inizia il nostro sorgente    **
    00000021 0839                                                                           ;**************************************
    00000022 0839                                                                           
    00000023 0839                                    .END                                   
    00000024 0839 >End of current source<
    
    Errors    : 00000
    Bei tempi ...
    aggiornamento da 10-03-2012 a 15:28 di M.A.W. 1968 (Privacy)
  5. L'avatar di M.A.W. 1968
    • |
    • permalink
    Quote Originariamente inviato da grimreaper
    Come faccio a sapere che i miei dati sono al sicuro e che non vengono utilizzati per altri fini [...] ?
    Semplicissimo: non puoi saperlo.

    Ritengo comunque che il giudizio su questa ennesima pagliacciata del mass market sia unanime non solo presso i professionisti più scafati, ma anche tra chi è abituato a coltivare il proprio senso critico.
  6. L'avatar di net-addiction
    • |
    • permalink
    Al di là della qualità del software e della sua applicabilità in un sistema "cloud" io non capisco questa smania delle aziende, e in certi casi sono grandi aziende, di consegnare i propri dati a internet. Come faccio a sapere che i miei dati sono al sicuro e che non vengono utilizzati per altri fini (il primo esempio che mi viene in mente è il webproxy che è un ottima fonte di dati statistici di navigazione)?

    Sono l'unico che pensa possa trasformarsi in "Clown Computing"?
  7. L'avatar di M.A.W. 1968
    • |
    • permalink
    Portando all'estremo il concetto, alcune tra le numerose varianti di VP sono organizzate in modo tale che sorgente e destinazione dati siano unicamente in memoria (si ricordi, tuttavia, che quasi sempre si parla di memorie on-chip in casi del genere).

    Motivi secondari di efficienza e ottimizzazione della implementazione conducono tuttavia quasi ogni progetto di VP concretamente realizzato a fare affidamento su uno o più banchi di registri, ciascuno con molteplicità pari al lanes factor: e ciò non si limita unicamente a codesti registri, che comunque hanno un ruolo primario nella modalità di accesso sequenziale sancita dalla teoria. Infatti, pensando proprio al semplice esempio al centro della presente entry, è altresì facile intuire l'opportunità di disporre anche di registri e/o accumulatori per risultati scalari (intermedi e finali).
  8. L'avatar di feel
    • |
    • permalink
    Operazioni di fetch e decode su una medesima istruzione in rapporto con la quantità di dati da elaborare sono drasticamente ridotte in VP, e in concomitanza con dati richiesti localmente "vicini" tra loro acceduti vettorialmente implica una totale inutilità della cache.
    Perfetto ora mi è tutto più chiaro. Grazie
  9. L'avatar di M.A.W. 1968
    • |
    • permalink
    Dobbiamo ricordare che l'architettura vettoriale è la più tipica soluzione per il progetto e la realizzazione di supercalcolatori, a partire dai Cray. Dunque possiamo attenderci qualche "sorpresa" hardware rispetto all'architettura "povera" dei PC e server mainstream. Per non appesantire la presente risposta, mi limiterò solo ad accennare i concetti più intuitivi che conducono all'eliminazione della cache.

    In effetti, abbiamo già indicato due concetti estremamente importanti in un vector processor: l'operabilità strettamente vincolata a posizioni corrispondenti nei vettori-operando, che ovviamente implica la garanzia di nessuna interazione o dipendenza tra i dati di un medesimo vettore (a questo provvedono i layer software, sia a tempo di compilazione che a runtime); e il rapporto tra lanes e lunghezza del vettore-operando, che sovente comporta l'esecuzione iterativa di una medesima operazione su più dati memorizzati in locazioni strettamente sequenziali.

    Dunque, anche se non abbiamo ben presenti in mente architetture esotiche come quella dello Stardent Titan, con i suoi banchi di registri multipli (es. 8 registri da 64 lanes cadauno) e la memoria interleaved tipica dei supercalcolatori, possiamo però già intuire che un VP non ha alcun bisogno di effettuare un pipeline profondo delle istruzioni, ma solo dei dati. Questo approccio è mutuamente esclusivo col concetto stesso di data cache, naturalmente.

    In base a tali considerazioni, anche se effettivamente esistono schemi di caching per talune architetture di VP (queste sì davvero esotiche), l'approccio generale - condiviso anche da taluni processori ibridi scalari/vettoriali, o comunque capaci di emulare modalità vettoriali - è quello di usare per costruzione il bypass della cache, grazie a banchi di registri dedicati - una soluzione ampiamente in uso anche all'altro estremo del computing applicativo, ossia nei sistemi embedded.
  10. L'avatar di feel
    • |
    • permalink
    Salve,
    veramente interessante articolo.
    Sarei grato se mi dasse delucidazioni di come l'accesso vettoriale alla memoria sia capace di rendere inutile tecniche come l'uso della cache.
    Grazie.
  11. L'avatar di Master85
    • |
    • permalink
    Ciao Daniele,

    ottimo blog! Come sempre

    Oltre ai riferimenti indicati, vorrei aggiungerne altri:
    • La documentazione ufficiale del linguaggio che è liberamente scaricabile dal sito di riferimento Python Doc;

    • Django, per lo sviluppo di applicazioni web;

    • Ancora, riguardo GUI Programming in Python, la mia scelta personale è caduta su wxPython (libreria grafica multi-piattaforma, compatibile con GNU/Linux, Microsoft Windows e Mac OSX).
    aggiornamento da 14-02-2015 a 01:38 di Master85
  12. L'avatar di Brontolo
    • |
    • permalink
    Il principale problema di APL, paradossalmente, consisteva nell'essere eccessivamente in anticipo sui tempi: i suoi operatori erano infatti simboli non convenzionali tratti direttamente dal formalismo matematico, quindi non presenti sulle tastiere e sui device di output (siamo negli anni Sessanta !).
    A dire il vero, mi hai fatto tornare in mente che i terminali IBM 3270 avevano talvolta QUESTA favolosa tastiera.
  13. L'avatar di SignIn
    • |
    • permalink
    Che dire, post perfetto (titolo superbo). La nota dolente rimane l'osservanza del decalogo da parte del Developer, Project Leader ecc.