FFTW-WISDOM(1) fftw FFTW-WISDOM(1)

fftw-wisdom - ایجاد فایل‌های حکمت (wisdom) برای تبدیل‌های فوریه پیش‌بهینه‌سازی‌شده

fftw-wisdom [گزینه]... [اندازه]...

fftw-wisdom ابزاری برای تولید فایل‌های حکمت (wisdom) در FFTW است؛ این فایل‌ها حاوی اطلاعات ذخیره‌شده درباره نحوه محاسبه بهینه تبدیل‌های (فوریه) در اندازه‌های گوناگون هستند. FFTW یک کتابخانه آزاد برای محاسبه تبدیل‌های گسسته فوریه در یک یا چند بُعد، برای اندازه‌های دلخواه، و بر روی داده‌های حقیقی و مختلط و سایر عملیات مرتبط است. اطلاعات بیشتر درباره FFTW در صفحه خانگی آن موجود است: http://www.fftw.org

برنامه‌هایی که از FFTW استفاده می‌کنند می‌توانند طوری نوشته شوند که داده‌های حکمت را از فایل دلخواه، رشته، یا منابع دیگر بارگیری کنند. علاوه بر این، بسیاری از برنامه‌های مبتنی بر FFTW فایل حکمت سیستم (system wisdom) را بارگیری می‌کنند که به‌طور پیش‌فرض در مسیر /etc/fftw/wisdom ذخیره شده است. از fftw-wisdom می‌توان برای ایجاد یا افزودن داده‌ها به چنین فایل‌هایی استفاده کرد. در متداول‌ترین حالت کاربرد، می‌توان فایل حکمت را برای پیش‌برنامه‌ریزی یک مجموعه اندازه استاندارد (کانونیکال - به زیر مراجعه کنید) از طریق دستور زیر ایجاد کرد:


fftw-wisdom -v -c -o wisdom


(این فرآیند ساعت‌های متمادی طول خواهد کشید، که می‌توان آن را با گزینه -t محدود کرد) و سپس فایل خروجی wisdom را می‌توان (با دسترسی ریشه / مدیر سیستم) در مسیر /etc/fftw/ یا هر مسیر دیگری کپی کرد.

برنامه fftw-wisdom به‌طور عادی خروجی حکمت را مستقیماً در خروجی استاندارد می‌نویسد، اما این رفتار را می‌توان با گزینه -o تغییر داد (همان‌طور که در مثال بالا نشان داده شده است).

اگر فایل حکمت سیستم در مسیر /etc/fftw/wisdom از قبل وجود داشته باشد، fftw-wisdom این داده‌های موجود را می‌خواند (مگر اینکه گزینه -n مشخص شده باشد) و هم حکمت قدیمی و هم هر حکمت تازه ایجادشده را در خروجی قرار می‌دهد. به این ترتیب، می‌توان از آن برای افزودن اندازه‌های تبدیل جدید به حکمت سیستمی موجود (یا سایر فایل‌های حکمت با گزینه -w) استفاده کرد.

اگرچه مجموعه‌ای استاندارد و کانونیکال از اندازه‌ها برای بهینه‌سازی با گزینه -c تعیین می‌شود، کاربر همچنین می‌تواند با استفاده از آرگومان‌های اندازه پس از فلگ‌های گزینه‌ها، صفر یا چند اندازه و نوع تبدیل غیرکانونیکال را برای بهینه‌سازی مشخص کند. علاوه بر این، اگر آرگومان اندازه برابر با «-» تعیین شود، اندازه‌های بهینه‌سازی می‌توانند از ورودی استاندارد (جداشده با فاصله) خوانده شوند.

اندازه‌ها با قواعد نحوی زیر مشخص می‌شوند:


<type><inplace><direction><geometry>


بخش <type> یکی از مقادیر ´c´ (مختلط)، ´r´ (حقیقی، r2c/c2r)، یا ´k´ (تبدیل r2r، انواع برحسب هر بعد، که در هندسه زیر مشخص می‌شود) است.

بخش <inplace> یکی از مقادیر ´i´ (درجا / in place) یا ´o´ (برون‌جا / out of place) است.

بخش <direction> یکی از مقادیر ´f´ (مستقیم / forward) یا ´b´ (معکوس / backward) است. برای تبدیل‌های ´k´ باید <direction> حذف شود، زیرا جهت تبدیل به‌جای آن در هندسه (geometry) مشخص می‌گردد.

بخش <geometry> اندازه و ابعاد تبدیل است، که ابعاد مختلف در آن با ´x´ جدا می‌شوند (به عنوان مثال ´16x32´ برای یک تبدیل دوبعدی ۱۶ در ۳۲). در مورد تبدیل‌های ´k´، اندازه هر بُعد با یک رشته "نوع" همراه می‌شود که می‌تواند به ترتیب یکی از مقادیر f/b/h/e00/e01/e10/e11/o00/o01/o10/o11 برای R2HC/HC2R/DHT/REDFT00/.../RODFT11 باشد (همان‌طور که در راهنمای FFTW تعریف شده است).

برای مثال، ´cif12x13x14´ یک تبدیل گسسته فوریه (DFT) مختلط سه‌بعدی ۱۲ در ۱۳ در ۱۴ است که به‌صورت درجا اجرا می‌شود. مقدار ´rob65536´ یک تبدیل یک‌بعدی برون‌جا مختلط به حقیقی (معکوس) با اندازه ۶۵۵۳۶ است که روی ورودی دارای تقارن هرمیتی عمل می‌کند. مقدار ´ki10hx20e01´ یک تبدیل دوبعدی ۱۰ در ۲۰ از نوع r2r است که بُعد اول آن DHT و بُعد دوم آن REDFT01 (یا DCT-III) است.

نمایش راهنما درباره گزینه‌ها و نحوه استفاده از خط فرمان.
چاپ شماره نسخه و اطلاعات حق نشر.
خروجی با جزئیات کامل. (می‌توانید این گزینه را چند بار مشخص کنید یا یک آرگومان عددی بزرگ‌تر از ۱ به آن بدهید تا سطح جزئیات افزایش یابد.) توجه داشته باشید که خروجی پرجزئیات با خروجی داده‌های حکمت ترکیب خواهد شد (که ایمپورت کردن آن را غیرممکن می‌کند)، مگر اینکه با گزینه -o داده‌های حکمت را در یک فایل بنویسید.
بهینه‌سازی و پیش‌برنامه‌ریزی یک مجموعه استاندارد (کانونیکال) از اندازه‌ها: تمام توان‌های ۲ و ۱۰ تا 2^20 (۱۰۴۸۵۷۶)، شامل تبدیل‌های حقیقی و مختلط، مستقیم و معکوس، درجا و برون‌جا. همچنین شامل تبدیل‌های دو و سه‌بعدی با ابعاد هم‌اندازه (مانند 16x16x16) می‌شود.
توقف پس از سپری شدن مدت زمان hours (به ساعت)، و خروجی دادن داده‌های حکمت جمع‌آوری‌شده. (مسائل به ترتیب افزایش اندازه برنامه‌ریزی می‌شوند.) مقدار پیش‌فرض ۰ است که نشان‌دهنده نبود محدودیت زمانی است.
ارسال خروجی حکمت به file به‌جای خروجی استاندارد (پیش‌فرض).
در حالت عادی، fftw-wisdom طرح‌ها را در حالت FFTW_PATIENT ایجاد می‌کند، اما با این گزینه‌ها می‌توانید به ترتیب از حالت‌های FFTW_MEASURE، FFTW_ESTIMATE، یا FFTW_EXHAUSTIVE استفاده کنید، همان‌گونه که در راهنمای FFTW با جزئیات بیشتر شرح داده شده است.

توجه داشته باشید که داده‌های حکمت با سطح شکیبایی برنامه‌ریزی (patience level) برچسب‌گذاری می‌شوند و یک فایل منفرد می‌تواند سطوح مختلفی از حکمت را در خود ترکیب کند (برای مثال می‌توانید بیشتر از حالت پیش‌فرض patient استفاده کنید، اما چند اندازه که برایتان اهمیت ویژه دارند را در حالت --exhaustive برنامه‌ریزی نمایید).

عدم وارد کردن (ایمپورت) حکمت سیستم از /etc/fftw/wisdom (که به‌طور معمول و پیش‌فرض خوانده می‌شود).
وارد کردن داده‌های حکمت از file (علاوه بر حکمت سیستم، مگر اینکه گزینه -n مشخص شده باشد). می‌توان چندین فایل حکمت را با تکرار گزینه -w خواند. اگر file برابر با «-» باشد، داده‌های حکمت از ورودی استاندارد خوانده می‌شوند.
برنامه‌ریزی با N رشته (thread). این گزینه تنها در صورتی وجود دارد که FFTW با پشتیبانی از چندرشتگی پیکربندی شده باشد.

گزارش‌های اشکال را به نشانی fftw@fftw.org ارسال کنید.

نوشته شده توسط Steven G. Johnson و Matteo Frigo.

Copyright (c) 2003, 2007-14 Matteo Frigo
Copyright (c) 2003, 2007-14 Massachusetts Institute of Technology

fftw-wisdom-to-conf(1)

February, 2003 fftw