[ 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
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/26 08:55]
zeman Rozměry pro kategorizaci souborů.
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.
 +
 +===== Rozměry =====
 +
 +Soubory, které při zpracování vznikají, lze rozdělit podle následujících kritérií. Kritéria je vhodné zohlednit ve jménech souborů nebo složek, aby bylo možné zpracovávat skupinu souborů se stejným kritériem pomocí jednoho pravidla. Bohužel je často obtížné navrhnout optimální rozmístění kritérií v cestě k souboru, protože ''make'' umí v šablonových pravidlech pracovat pouze s jedním souvislým proměnným úsekem.
 +
 +  * Fáze zpracování (train, trained-model, test-input, parsed...). Někdy je vyjádřená příponou souboru, protože řadě fází odpovídá konkrétní datový formát. Ale např. trénovací a testovací data bývají ve stejném formátu a bývá zvykem je rozlišit spíše ve jméně souboru než v příponě.
 +  * Jazyk
 +  * Datová sada (dev vs. eval, popř. nějaká další, třeba out-of-domain data)
 +  * Velikost trénovacích dat pro křivku učení
 +  * Různá nastavení parseru a dalších nástrojů, různá předzpracování dat (např. převedení morfologických značek do sady PDT)
  

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