[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
user:zeman:rizeni-pokusu-pomoci-makefilu [2009/03/19 22:18]
zeman Cluster.
user:zeman:rizeni-pokusu-pomoci-makefilu [2009/03/20 18:32]
zeman Absolutní a relativní cesty.
Line 32: Line 32:
  
 Některé kroky bývají výpočetně náročné a hodilo by se je dělat na clusteru. Zvláště pokud zpracováváme stejným způsobem třeba 10 jazyků, hodilo by se zpracovávat je všechny paralelně. Paralelní práce s makem je problém, protože je potřeba propojit hlídání závislostí s distribucí úloh: qsub se vrátí dříve než je cíl připraven, takže nemůžeme hned přejít k tvorbě cílů, které na něm závisí. GNU make umí paralelizovat zpracování v rámci několika procesorů téhož stroje (při volání můžeme říct, na kolik procesů se smí zpracování rozštěpit), ale podpora pro spolupráci s clusterem mu chybí. Existují nějaké paralelní maky, ale myslím, že nejsou standardně nainstalované všude (pravděpodobně ani u nás) a řešení na nich postavené by nebylo snadno přenositelné. Některé kroky bývají výpočetně náročné a hodilo by se je dělat na clusteru. Zvláště pokud zpracováváme stejným způsobem třeba 10 jazyků, hodilo by se zpracovávat je všechny paralelně. Paralelní práce s makem je problém, protože je potřeba propojit hlídání závislostí s distribucí úloh: qsub se vrátí dříve než je cíl připraven, takže nemůžeme hned přejít k tvorbě cílů, které na něm závisí. GNU make umí paralelizovat zpracování v rámci několika procesorů téhož stroje (při volání můžeme říct, na kolik procesů se smí zpracování rozštěpit), ale podpora pro spolupráci s clusterem mu chybí. Existují nějaké paralelní maky, ale myslím, že nejsou standardně nainstalované všude (pravděpodobně ani u nás) a řešení na nich postavené by nebylo snadno přenositelné.
 +
 +===== Absolutní a relativní cesty =====
 +
 +Make neprovádí ''pwd'', takže neví, že ''$(MOJESLOZKA)/soubor.txt'' a ''soubor.txt'' je případně tentýž soubor (cíl). Má-li být součástí zpracování kopírování souborů z jedné složky do jiné, pak je nejbezpečnější uvádět všechny soubory absolutní cestou. V tom případě je ovšem potřeba počítat s tím, že make bude s dlouhou cestou k souboru pracovat po celou dobu včetně všech šablonových pravidel, což může případně komplikovat návrh šablon v těchto pravidlech.
 +
 +Nevýhodou je také délka. Kopie volání, které make vypíše do terminálu, budou méně přehledné. Pokud navíc pracujeme s velkým množstvím souborů, snadněji se nám stane, že někde překročíme nejvyšší povolenou délku příkazového řádku.
 +
 +Pokud oddělíme kopírování dat ze vzdálených složek do samostatného Makefilu a pokud v rámci jednoho Makefilu omezíme případné přesuny mezi složkami na takové, které se dají vyjádřit relativní cestou (tj. typicky podstrom složky, ve které leží Makefile), pak si vystačíme s relativními cestami. Poznámka: I kopírování ze vzdálených složek lze pak vyřešit tím, že si na vzdálené složky vyrobíme ze složky s Makefilem symbolický odkaz.
  

[ Back to the navigation ] [ Back to the content ]