9. cvičení


Posílání zpráv

Knihovnu pro posílání zpráv lze nalézt zde. Archiv obsahuje soubor pmmp.lisp s knihovnou pro zasíláí zpráv. Tento soubor je potřeba načíst. Načítání je nutné provést až po načtení knihovnz paraload. Nejjednodužší cesta jak toho docílí je upravit soubor load.lisp následovně.

    
    ;; konfigurace: cesta k asdf.lisp souboru
    (load "/Users/romanvyjidacek/Library/Mobile\ Documents/com\~apple\~CloudDocs/UPOL/PhD/PARA/paraload/asdf.lisp")
    ;; konfigurace: cesta k instalaci quicklispu
    (load "/Users/romanvyjidacek/quicklisp/setup.lisp")
    ;; konfigurace: cesta k adresari s knihovnou
    (load "/Users/romanvyjidacek/Library/Mobile\ Documents/com\~apple\~CloudDocs/UPOL/PhD/PARA/paraload/para.lisp")
    ;; konfigurace: cesta k adresari s knihovnou pro posilani zprav
    (load "/Users/romanvyjidacek/Library/Mobile\ Documents/com\~apple\~CloudDocs/UPOL/PhD/PARA/paraload/pmmp.lisp")
    

Dále archiv obsahuje soubor s testy tests.lisp, které na příkladech ukazují použití knihovny pmmp.

Úkoly

  1. Pomocí zasílání zpráv naprogramujte násobení matic.

  2. Mějme 5 procesů, kde první generátor, druhý balancer a ostatní procesy jsou workers. Generátor generuje náhodná čísla a a posílá je balanceru. Balancer má za úkol rovnoměrně posílat obdržená čísla procesům workers tak, aby všechny počítali stejně dlouho. Doba trvání výpočtu může být realizována napriklad pomocí sleep.

        
            ;;n je obdržené číslo.
            (sleep (* (random id) n)