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

fftwf-wisdom - تولید wisdom (تبدیل‌های فوریه از پیش بهینه‌شده)

fftwf-wisdom [OPTION]... [SIZE]...

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

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


fftwf-wisdom -v -c -o wisdomf


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

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

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

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

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


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


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

<inplace> یکی از موارد ´i´ (درجا - in place) یا ´o´ (غیردرجا - out of place) است.

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

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

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

نمایش راهنما درباره گزینه‌های خط فرمان و نحوه استفاده.
چاپ شماره نسخه و اطلاعات کپی‌رایت.
خروجی پرگو (مشروح). (می‌توانید این گزینه را چندین بار مشخص کنید یا یک آرگومان عددی بزرگ‌تر از ۱ تعیین نمایید تا سطح پرگویی افزایش یابد.) توجه داشته باشید که خروجی پرگو با خروجی wisdom مخلوط خواهد شد (که وارد کردن آن را ناممکن می‌سازد)، مگر اینکه wisdom را با گزینه -o در یک فایل ذخیره کنید.
بهینه‌سازی/برنامه‌ریزی اولیه مجموعه‌ای استاندارد (canonical) از اندازه‌ها: تمام توان‌های دو و ده تا 2^20 (1048576)، شامل هر دو تبدیل حقیقی و مختلط، رو به جلو و رو به عقب، و تبدیلات درجا و غیردرجا. همچنین تبدیلات دو و سه‌بعدی با ابعاد هم‌اندازه (مانند 16x16x16) را نیز شامل می‌شود.
توقف پس از سپری شدن مدت زمان hours (به ساعت)، و ارائه wisdom انباشته‌شده در خروجی. (مسائل به ترتیب افزایش اندازه برنامه‌ریزی می‌شوند.) پیش‌فرض 0 است که نشان‌دهنده عدم وجود محدودیت زمانی است.
ارسال خروجی wisdom به file به‌جای خروجی استاندارد (پیش‌فرض).
به‌طور معمول، fftwf-wisdom برنامه‌ها را در حالت FFTW_PATIENT ایجاد می‌کند، اما با این گزینه‌ها می‌توانید به ترتیب از حالت‌های FFTW_MEASURE، FFTW_ESTIMATE یا FFTW_EXHAUSTIVE استفاده کنید، همان‌طور که در راهنمای FFTW با جزئیات بیشتر شرح داده شده است.

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

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

گزارش‌های باگ را به 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