EnglishFrenchSpanyol

Favicon OnWorks

pegasus-plan - Dalam talian di Awan

Jalankan pelan pegasus dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan pegasus-plan yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


pegasus-plan - menjalankan Pegasus untuk menjana aliran kerja boleh laku

SINOPSIS


pelan pegasus [-v] [-q] [-V] [-h]
[-Dprop=nilai...]] [-b awalan]
[--conf propsfile]
[-c fail cache[,fail cache...]] [--bersihkan pembersihan strategi ]
[-C gaya[,gaya...]]
[--dir dir]
[- kekuatan] [--paksa-rancang semula]
[--inherited-rc-files] [-j awalan]
[-n][-I input-dir][-O output-dir] [-o tapak]
[-s site1[,site2...]]
[--tapak-pementasan s1=ss1[,s2=ss2[..]]
[--randomdir[=nama panggilan]]
[--relative-dir dir]
[--relative-submit-dir dir]
-d daxfile

DESCRIPTION


. pelan pegasus arahan mengambil masuk sebagai input DAX dan menjana aliran kerja boleh laku
biasanya dalam bentuk condor serahkan fail, yang boleh diserahkan kepada an pelaksanaan laman web untuk
pelaksanaan.

Sebagai sebahagian daripada menjana aliran kerja boleh laku, perancang perlu menemui:

data
Perancang Aliran Kerja Pegasus memastikan semua data yang diperlukan untuk pelaksanaan
aliran kerja boleh laku dipindahkan ke tapak pelaksanaan dengan menambahkan nod pemindahan
pada titik yang sesuai dalam DAG. Ini dilakukan dengan mencari yang sesuai Replika
Katalog untuk menentukan lokasi fail input untuk pelbagai kerja. Oleh
lalai, katalog replika berasaskan fail digunakan.

Perancang Aliran Kerja Pegasus juga cuba mengurangkan aliran kerja, melainkan dinyatakan
sebaliknya. Ini dilakukan dengan memadam kerja yang fail outputnya telah ditemui
beberapa lokasi dalam Katalog Replika. Pada masa ini tiada metrik kos digunakan. Namun begitu
keutamaan diberikan kepada lokasi yang sepadan dengan tapak pelaksanaan

Perancang juga boleh menambah nod untuk memindahkan semua fail terwujud ke output
tapak. Lokasi di tapak keluaran ditentukan dengan mencari katalog tapak
fail, laluan yang diambil daripada fail pegasus.catalog.site.file harta
nilai.

yang boleh dilaksanakan
Perancang mencari Katalog Transformasi untuk menemui lokasi boleh laku
dirujuk dalam aliran kerja boleh laku. Pengguna boleh menentukan INSTALLED atau STAGEABLE
boleh laku dalam katalog. Boleh laku berperingkat boleh digunakan oleh Pegasus ke pentas
boleh laksana kepada sumber yang tidak diprapasang.

sumber
Susun atur tapak, tempat Pegasus boleh menjadualkan kerja aliran kerja diterangkan
dalam Katalog Tapak. Perancang mencari katalog tapak untuk menentukan tapak
direktori apa kerja boleh dilaksanakan, pelayan apa yang hendak digunakan untuk pementasan masuk dan keluar
data dan pengurus kerja (jika berkenaan) boleh digunakan untuk menghantar kerja.

Data dan lokasi boleh laku kini boleh ditentukan dalam DAX yang mematuhi skema DAX
versi 3.2 atau lebih tinggi.

PILIHAN


Sebarang pilihan akan dipaparkan dengan sinonim pilihan panjangnya.

-Dharta = nilai
. -D pilihan membenarkan pengguna berpengalaman untuk mengatasi sifat tertentu yang
mempengaruhi pelaksanaan program, antaranya lokasi lalai pengguna
fail hartanah dan lokasi rumah PEGASUS. Seseorang boleh menetapkan beberapa sifat CLI dengan
memberikan pilihan ini beberapa kali. The -D pilihan(s) mestilah pilihan pertama pada
baris arahan. Harta CLI diutamakan berbanding harta fail hartanah bagi
kunci yang sama.

-d fail, --dax fail
DAX ialah fail input XML yang menerangkan aliran kerja abstrak. Ini adalah wajib
pilihan, yang perlu digunakan.

-b awalan, --nama asas awalan
Awalan nama asas untuk digunakan semasa membina setiap fail aliran kerja seperti dagman
fail (fail .dag) dan fail khusus aliran kerja lain yang dicipta oleh Condor. Biasanya
awalan ini, diambil daripada atribut nama yang dinyatakan dalam elemen akar dax
fail.

-c fail[,fail,...], --cache fail[,fail,...]
Senarai laluan yang dipisahkan koma ke fail cache replika yang mengatasi hasil daripada
katalog replika untuk LFN tertentu.

Setiap entri dalam fail cache menerangkan LFN , PFN yang sepadan dan
atribut yang berkaitan. Atribut kumpulan hendaklah dinyatakan untuk setiap entri.

LFN_1 PFN_1 pool=[pemegang tapak 1]
LFN_2 PFN_2 pool=[pemegang tapak 2]
...
LFN_N PFN_N [pemegang tapak N]

Untuk merawat fail cache sebagai katalog replika tambahan tetapkan harta tersebut
pegasus.catalog.replica.cache.asrc kepada benar. Ini menghasilkan pemetaan dalam cache
fail untuk digabungkan dengan pemetaan dalam katalog replika. Oleh itu, untuk tertentu
LFN kedua-dua entri dalam fail cache dan katalog replika tersedia untuk replika
pemilihan.

-C gaya[,gaya,...], --kelompok gaya[,gaya,...]
Senarai gaya pengelompokan yang dipisahkan koma untuk digunakan pada aliran kerja. Mod ini
operasi menghasilkan pengelompokan n kerja pengiraan ke dalam pekerjaan yang lebih besar untuk mengurangkan jarak jauh
overhed penjadualan. Anda boleh menentukan senarai teknik pengelompokan secara rekursif
menerapkannya pada aliran kerja. Sebagai contoh, ini membolehkan anda mengumpulkan beberapa pekerjaan dalam
aliran kerja menggunakan pengelompokan mendatar dan kemudian gunakan pengelompokan berasaskan label pada
aliran kerja perantaraan untuk melakukan pengelompokan menegak.

Kerja berkelompok boleh dijalankan di tapak terpencil, sama ada secara berurutan atau dengan menggunakan MPI.
Ini boleh ditentukan dengan menetapkan harta pegasus.job.aggregator. Harta boleh
ditindih dengan mengaitkan kekunci profil PEGASUS pengubah sama ada dengan
transformasi dalam katalog transformasi atau tapak pelaksanaan dalam tapak
katalog. Nilai yang ditentukan (kepada harta atau profil), ialah nama logik bagi
transformasi yang akan digunakan untuk mengelompokkan pekerjaan. Perhatikan bahawa pengelompokan akan
hanya berlaku jika transformasi yang sepadan dikatalogkan dalam transformasi
katalog.

PEGASUS dihantar dengan kluster boleh laku pegasus-cluster yang boleh didapati di
$PEGASUS_HOME/bin direktori. Ia menjalankan kerja dalam kerja berkelompok secara berurutan pada
nod yang sama di tapak terpencil.

Di samping itu, alat pengelompokan berasaskan MPI yang dipanggil pegasus-mpi-cluster', juga
diedarkan dan boleh didapati dalam direktori bin. pegasus-mpi-cluster pun boleh
digunakan dalam persediaan sharedfs dan perlu disusun terhadap tapak jauh MPI
pasang. direktori. Pembalut dijalankan pada setiap nod MPI, dengan yang pertama ialah
tuan dan yang lain sebagai pekerja.

Secara lalai, pegasus-cluster digunakan untuk mengelompokkan kerja melainkan ditindih dalam
hartanah atau dengan kekunci profil pegasus pengubah.

Jenis gaya pengelompokan berikut kini disokong:

· mendatar ialah gaya pengelompokan di mana pekerjaan pada tahap yang sama
diagregatkan kepada pekerjaan yang lebih besar. Tahap aliran kerja ditakrifkan sebagai yang terbesar
jarak nod, dari akar aliran kerja. Pengelompokan berlaku hanya pada pekerjaan
daripada jenis yang sama iaitu merujuk kepada transformasi logik yang sama dalam
katalog transformasi.

Pengelompokan Mendatar boleh beroperasi dalam satu daripada dua mod. a. berdasarkan kiraan kerja.

Butiran pengelompokan boleh ditentukan dengan mengaitkan sama ada PEGASUS
kunci profil kelompok.saiz atau kekunci profil PEGASUS clusters.num dengan
transformasi.

. kelompok.saiz kunci menunjukkan berapa banyak pekerjaan yang perlu dikelompokkan ke dalam yang lebih besar
kerja berkelompok. Kunci clusters.num menunjukkan bilangan kerja berkelompok
dicipta untuk tahap tertentu di tapak pelaksanaan tertentu. Jika kedua-dua kunci adalah
ditentukan untuk transformasi tertentu, maka nilai kunci clusters.num digunakan
untuk menentukan butiran pengelompokan.

1. berasaskan masa jalan.

Untuk mengelompokkan kerja mengikut runtime pengguna perlu menetapkan satu sifat dan dua
kunci profil. Sifat pegasus.clusterer.preference mesti ditetapkan kepada
nilai runtime. Di samping itu pengguna perlu menentukan dua profil Pegasus. a.
clusters.maxruntime yang menentukan tempoh maksimum yang
kerja berkelompok harus dijalankan untuk. b. job.runtime yang menentukan tempoh untuk
yang mana tugas yang dikaitkan dengan kunci profil, dijalankan. Sebaik-baiknya,
clusters.maxruntime hendaklah ditetapkan dalam katalog transformasi dan job.runtime
hendaklah ditetapkan untuk setiap kerja secara individu.

· label ialah gaya pengelompokan di mana anda boleh melabelkan kerja dalam aliran kerja anda.
Pekerjaan dengan tahap yang sama diletakkan dalam pekerjaan berkelompok yang sama. Ini membolehkan anda
agregat pekerjaan merentas peringkat, atau dengan cara yang paling sesuai dengan anda
permohonan.

Untuk melabelkan aliran kerja, anda perlu mengaitkan profil PEGASUS dengan pekerjaan dalam
DAX. Kekunci profil untuk digunakan untuk melabelkan aliran kerja boleh ditetapkan oleh harta tersebut
pegasus.clusterer.label.key. Ia lalai untuk melabel, bermakna jika anda mempunyai PEGASUS
label kunci profil dengan pekerjaan, pekerjaan dengan nilai yang sama untuk profil pegasus
label kunci akan masuk ke dalam kerja berkelompok yang sama.

--bersihkan pembersihan strategi
Strategi pembersihan yang akan digunakan untuk aliran kerja. Pegasus boleh menambah kerja pembersihan pada
aliran kerja boleh laku yang boleh mengalih keluar fail dan direktori semasa aliran kerja
pelaksanaan.

Jenis strategi pembersihan berikut disokong pada masa ini:

· tiada melumpuhkan pembersihan sama sekali. Perancang tidak menambah sebarang kerja pembersihan dalam
aliran kerja boleh laksana apa sahaja.

· daun perancang menambah nod pembersihan daun setiap tapak pementasan yang mengalih keluar
direktori yang dicipta oleh kerja dir cipta dalam aliran kerja.

· di tempat perancang menambah sebagai tambahan kepada nod pembersihan daun, nod pembersihan setiap
tahap aliran kerja yang mengalih keluar fail tidak lagi diperlukan semasa pelaksanaan. Untuk
contoh, nod pembersihan tambahan akan mengalih keluar fail input untuk pengiraan tertentu
kerja selepas kerja itu selesai dengan jayanya.

--conf propfile
Laluan ke fail sifat yang mengandungi perancang sifat perlu menggunakan semasa
merancang aliran kerja.

--dir dir
Direktori asas di mana anda mahu output Perancang Aliran Kerja Pegasus biasanya
condor menyerahkan fail, untuk dijana. Pegasus mencipta struktur direktori dalam ini
direktori asas berdasarkan nama pengguna, Kumpulan VO dan label aliran kerja dalam
DAX.

Secara lalai, direktori asas ialah direktori dari mana satu menjalankan pelan pegasus
perintah.

-f, - kekuatan
Ini memintas fasa pengurangan di mana DAG abstrak dikurangkan, atas dasar
lokasi fail output yang dikembalikan oleh katalog replika. Ini adalah
serupa dengan a membuat penjanaan gaya aliran kerja boleh laku.

--paksa-rancang semula
Secara lalai, untuk aliran kerja hierarik jika kerja DAX gagal, kemudian semasa kerja cuba semula penyelamatan
DAG aliran kerja yang berkaitan diserahkan. Pilihan ini menyebabkan Pegasus merancang semula
Kerja DAX sekiranya berlaku kegagalan.

-g, --kumpulan
Kumpulan VO milik pengguna.

-h, - membantu
Memaparkan semua pilihan kepada pelan pegasus perintah.

--inherited-rc-files fail[,fail,...]
Senarai laluan yang dipisahkan koma ke fail replika. Lokasi yang dinyatakan dalam ini mempunyai a
keutamaan yang lebih rendah daripada lokasi dalam fail DAX. Pilihan ini biasanya digunakan
secara dalaman untuk aliran kerja hierarki, di mana lokasi fail disebut dalam
induk (merangkumi) aliran kerja DAX, dihantar ke sub aliran kerja (bersamaan) dengan
pekerjaan DAX.

-I, --input-dir
Laluan ke direktori input di mana fail input berada. Ini secara dalaman memuatkan a
Bahagian belakang Katalog Replika berasaskan direktori, yang membina melakukan penyenaraian direktori
buat pemetaan LFN→PFN untuk fail dalam direktori input. Anda boleh menentukan
sifat tambahan sama ada pada baris arahan atau fail sifat untuk mengawal
atribut tapak dan awalan url yang dikaitkan dengan pemetaan.

pegasus.catalog.replica.directory.site menentukan atribut kumpulan untuk dikaitkan dengan
pemetaan. Lalai kepada tempatan

pegasus.catalog.replica.directory.url.prefix menentukan awalan URL untuk digunakan semasa
membina PFN. Lalai untuk fail://

-j awalan, --awalan-pekerjaan awalan
Awalan kerja yang akan digunakan untuk membina nama fail untuk fail serah tugas.

-n, --nocleanup
Pilihan ini ditamatkan. Gunakan --cleanup none sebaliknya.

-o tapak, --output-site tapak
Tapak output tempat fail output DAX dipindahkan.

Secara lalai terwujud data kekal dalam direktori kerja pada pelaksanaan
tapak di mana ia dicipta. Hanya fail output tersebut dipindahkan ke tapak output
yang mana atribut pemindahan ditetapkan kepada benar dalam DAX.

-O output direktori, --output-dir output direktori
Direktori output tempat fail output DAX dipindahkan.

Jika -o ditentukan direktori storan tapak yang ditentukan sebagai tapak output
dikemas kini untuk menjadi direktori yang diluluskan. Jika tiada tapak keluaran ditentukan, maka pilihan ini
secara dalaman menetapkan tapak output kepada setempat dengan direktori storan dikemas kini kepada
direktori diluluskan.

-q, --senyap
Menurunkan tahap pembalakan.

-r[nama panggilan], --randomdir[=nama panggilan]
Pegasus Worfklow Planner menambah kerja direktori pada aliran kerja boleh laku itu
cipta direktori di mana semua kerja untuk aliran kerja itu dilaksanakan pada tapak tertentu.
Direktori yang dibuat adalah dalam direktori kerja (dinyatakan dalam katalog tapak dengan
setiap tapak).

Secara lalai, Pegasus menduplikasi struktur direktori relatif pada hos hantar pada
tapak terpencil. Pengguna boleh menentukan pilihan ini tanpa hujah untuk mencipta rawak
nama berasaskan cap waktu untuk direktori pelaksanaan yang dicipta oleh dir cipta
pekerjaan. Pengguna boleh menentukan hujah pilihan untuk pilihan ini untuk menentukan
nama asas direktori yang akan dibuat.

Pekerjaan create dir merujuk kepada pengurus boleh laku yang dihantar sebagai sebahagian daripada
Pakej pekerja PEGASUS. Katalog transformasi dicari untuk transformasi
bernama pegasus::dirmanager untuk semua tapak terpencil tempat aliran kerja berada
dijadualkan. Pegasus boleh mencipta laluan lalai untuk dirmanager boleh laku, jika
PEGASUS_HOME pembolehubah persekitaran dikaitkan dengan tapak dalam katalog tapak sebagai
profil persekitaran.

--relative-dir dir
Direktori relatif kepada direktori asas di mana aliran kerja boleh laku itu berada
dihasilkan dan dilaksanakan. Ini mengatasi struktur direktori lalai yang Pegasus
mencipta berdasarkan nama pengguna, Kumpulan VO dan label DAX.

--relative-submit-dir dir
Direktori relatif kepada direktori asas di mana aliran kerja boleh laku itu berada
dihasilkan. Ini mengatasi struktur direktori lalai yang dibuat berdasarkan Pegasus
pada nama pengguna, Kumpulan VO dan label DAX. Dengan menyatakan --relative-dir and
--relative-submit-dir anda boleh mempunyai direktori pelaksanaan relatif yang berbeza pada
tapak jauh dan direktori serahan relatif berbeza pada hos serah.

-s tapak[,tapak,...], --tapak tapak[,tapak,...]
Senarai tapak pelaksanaan yang dipisahkan koma di mana aliran kerja akan dilaksanakan.
Setiap tapak harus mempunyai entri dalam katalog tapak, yang sedang digunakan. Untuk berlari
pada hos hantar, nyatakan tapak pelaksanaan sebagai tempatan.

Sekiranya pilihan ini tidak dinyatakan, semua tapak dalam katalog tapak akan diambil
sebagai calon untuk menjalankan aliran kerja.

--tapak-pementasan s1=ss1[,s2=ss2[..]]
Senarai key=value pairs yang dipisahkan koma , dengan kuncinya ialah tapak pelaksanaan dan
nilai ialah tapak pementasan untuk tapak pelaksanaan itu.

Sekiranya dijalankan pada sistem fail kongsi, tapak pementasan adalah secara automatik
dikaitkan oleh perancang untuk menjadi tapak pelaksanaan. Jika hanya nilai ditentukan, maka
yang diambil sebagai tapak pementasan untuk semua tapak pelaksanaan. cth --tapak-pementasan
tempatan bermakna bahawa perancang akan menggunakan tapak tempatan sebagai tapak pementasan untuk semua pekerjaan
dalam aliran kerja.

-s, --serahkan
Menyerahkan yang dihasilkan boleh dilaksanakan aliran kerja menggunakan pegasus-run skrip dalam
Direktori $PEGASUS_HOME/bin. Secara lalai, Perancang Aliran Kerja Pegasus hanya menjana
Condor menyerahkan fail dan tidak menyerahkannya.

-v, --verbose
Meningkatkan keterlaluan mesej tentang perkara yang sedang berlaku. Secara lalai, semua FATAL,
Mesej ERROR, CONSOLE dan WARN direkodkan. Hierarki pengelogan adalah seperti berikut:

1. MAUT

2. RALAT

3. KONSOL

4. AMARAN

5. MAKLUMAT

6. KONFIG

7. DEBUG

8. JEJAK

Sebagai contoh, untuk melihat mesej INFO, CONFIG dan DEBUG tambahan, tetapkan -vvv.

-V, --versi
Memaparkan nombor versi semasa Sistem Pengurusan Aliran Kerja Pegasus.

PULANG BALIK NILAI


Jika Perancang Aliran Kerja Pegasus dapat menjana aliran kerja boleh laku dengan jayanya,
kod keluar ialah 0. Semua ralat masa jalan menghasilkan kod keluar 1. Ini biasanya dalam
kes apabila anda telah salah konfigurasi katalog anda dsb. Sekiranya ralat berlaku
semasa memuatkan pelaksanaan modul tertentu pada masa jalankan, kod keluar ialah 2. Ini
biasanya disebabkan kaedah kilang gagal semasa memuatkan modul. Dalam kes yang lain
ralat yang berlaku semasa menjalankan arahan, kod keluar ialah 1. Dalam kebanyakan kes,
mesej ralat yang dilog harus memberikan petunjuk yang jelas tentang di mana masalah telah berlaku.

MENGAWAL PELAN PEGASUS MEMORY KONSUMSI


pegasus-plan akan cuba menentukan had memori secara automatik menggunakan faktor seperti jumlah
ingatan sistem dan had ingatan potensi (ulimit). Had automatik boleh
ditindih dengan menetapkan pembolehubah persekitaran JAVA_HEAPMIN dan JAVA_HEAPMAX sebelum ini
menggunakan pelan pegasus. Nilai adalah dalam megabait. Sebagai peraturan, JAVA_HEAPMIN boleh
ditetapkan kepada separuh daripada nilai JAVA_HEAPMAX.

pegasus HARTANAH


Ini bukan senarai lengkap hartanah yang digunakan. Untuk penerangan dan senarai lengkap
hartanah merujuk kepada $PEGASUS_HOME/doc/advanced-properties.pdf

pegasus.selector.site
Mengenal pasti jenis pemilih tapak yang anda mahu gunakan. Jika tidak dinyatakan lalai
nilai Random digunakan. Mod lain yang disokong ialah Robin pusingan and NonJavaCallout Bahawa
memanggil pemilih tapak luaran.

pegasus.catalog.replica
Menentukan jenis katalog replika yang akan digunakan.

Jika tidak dinyatakan, maka nilai lalai kepada RLS.

pegasus.catalog.replica.url
Rentetan hubungan untuk mengakses katalog replika. Dalam kes RLS ia adalah url RLI.

pegasus.dir.exec
Akhiran pada workdir dalam katalog tapak untuk menentukan kerja semasa
direktori. Jika relatif, nilai akan dilampirkan pada direktori kerja daripada
fail site.config. Jika mutlak ia membentuk direktori kerja.

pegasus.catalog.transformation
Menentukan jenis katalog transformasi yang akan digunakan. Seseorang boleh menggunakan sama ada fail
berasaskan atau katalog transformasi berasaskan pangkalan data. Pada masa ini lalai ialah teks.

pegasus.catalog.transformation.file
Lokasi fail untuk digunakan sebagai katalog transformasi.

Jika tidak dinyatakan, maka lokasi lalai $PEGASUS_HOME/var/tc.data digunakan.

pegasus.catalog.site
Menentukan jenis katalog tapak yang akan digunakan. Seseorang boleh menggunakan sama ada berasaskan teks atau an
katalog tapak berasaskan xml. Pada masa ini lalai ialah XML3.

pegasus.catalog.site.file
Lokasi fail untuk digunakan sebagai katalog tapak. Jika tidak dinyatakan, maka nilai lalai bagi
$PEGASUS_HOME/etc/sites.xml digunakan dalam kes katalog tapak berasaskan xml dan
$PEGASUS_HOME/etc/sites.txt dalam kes katalog tapak berasaskan teks.

pegasus.data.configuration
Harta ini menyediakan Pegasus untuk dijalankan dalam persekitaran yang berbeza. Ini boleh ditetapkan kepada

sharedfs Jika ini ditetapkan, Pegasus akan disediakan untuk melaksanakan kerja pada perkongsian
sistem fail di tapak pelaksanaan. Ini mengandaikan, bahawa nod kepala gugusan dan
nod pekerja berkongsi sistem fail. Tapak pementasan dalam kes ini adalah sama dengan
tapak pelaksanaan.

nonsharedfs Jika ini ditetapkan, Pegasus akan disediakan untuk melaksanakan kerja di tapak pelaksanaan
tanpa bergantung pada sistem fail yang dikongsi antara nod kepala dan nod pekerja.

kondominium Jika ini ditetapkan, Pegasus akan disediakan untuk menjalankan kerja dalam kolam kondor tulen, dengan
nod tidak berkongsi sistem fail. Data berperingkat ke nod pengiraan daripada
serahkan hos menggunakan Condor File IO.

pegasus.code.generator
Penjana kod untuk digunakan. Secara lalai, fail hantar Condor dijana untuk
aliran kerja boleh laksana. Menetapkan kepada Shell mengakibatkan Pegasus menghasilkan skrip shell
yang boleh dilaksanakan pada hos hantar.

Gunakan pelan pegasus dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

Arahan Linux

Ad