Ito ang command na NPtcp na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
NetPIPE - lambattrabaho Protocol Iwalang pag-asa Performance Etagapagpahalaga
SINOPSIS
NPtcp [-h receiver_hostname] [-b TCP_buffer_sizes] [mga pagpipilian]
mpirun [-machinefile hostlist] -np 2 NPmpi [-a] [-S] [-z] [mga opsyon]
mpirun [-machinefile hostlist] -np 2 NPmpi2 [-f] [-g] [mga opsyon]
NPpvm [mga pagpipilian]
Tingnan ang mga seksyon ng PAGSUBOK sa ibaba para sa isang mas kumpletong paglalarawan kung paano patakbuhin ang NetPIPE
bawat kapaligiran. Inilalarawan ng seksyong OPTIONS ang mga pangkalahatang opsyon na magagamit para sa lahat
mga module. Tingnan ang README file mula sa tar-ball sa
http://www.scl.ameslab.gov/Projects/NetPIPE/ para sa dokumentasyon sa InfiniBand, GM,
Mga module ng SHMEM, LAPI, at memcpy.
DESCRIPTION
NetPIPE gumagamit ng isang simpleng serye ng mga pagsubok sa ping-pong sa isang hanay ng mga laki ng mensahe upang magbigay ng a
kumpletong sukatan ng pagganap ng isang network. Nagba-bounce ito ng mga mensahe ng lumalaking laki
sa pagitan ng dalawang proseso, sa kabuuan man ng isang network o sa loob ng isang SMP system. Mga laki ng mensahe
ay pinipili sa mga regular na agwat, at may kaunting kaguluhan, upang magbigay ng kumpletong
pagsusuri ng sistema ng komunikasyon. Ang bawat punto ng data ay nagsasangkot ng maraming pagsubok sa ping-pong
magbigay ng tumpak na timing. Kinakalkula ang mga latency sa pamamagitan ng paghahati sa oras ng pag-ikot sa biyahe
kalahati para sa maliliit na mensahe ( mas mababa sa 64 Bytes ).
Ang oras ng komunikasyon para sa maliliit na mensahe ay pinangungunahan ng overhead sa
mga layer ng komunikasyon, ibig sabihin ay latency bound ang transmission. Para sa mas malaki
mga mensahe, ang bilis ng komunikasyon ay nagiging bandwidth na limitado ng ilang bahagi sa
subsystem ng komunikasyon (PCI bus, network card link, network switch).
Ang mga sukat na ito ay maaaring gawin sa message-passing layer (MPI, MPI-2, at PVM) o sa
ang mga native na layer ng komunikasyon na tumatakbo sa (TCP/IP, GM para sa Myrinet card,
InfiniBand, SHMEM para sa Cray T3E system, at LAPI para sa IBM SP system). Ang kamakailang trabaho ay
na naglalayong sukatin ang ilang panloob na katangian ng system tulad ng memcpy module na
sinusukat ang mga rate ng kopya ng panloob na memorya, o isang disk module na nasa ilalim ng pagbuo na sumusukat
ang pagganap sa iba't ibang I/O device.
Ang ilang mga gamit para sa NetPIPE ay kinabibilangan ng:
Paghahambing ng latency at maximum throughput ng iba't ibang network card.
Paghahambing ng pagganap sa pagitan ng iba't ibang uri ng mga network.
Naghahanap ng mga inefficiencies sa message-passing layer sa pamamagitan ng paghahambing nito sa
katutubong layer ng komunikasyon.
Pag-optimize ng message-passing layer at i-tune ang OS at mga parameter ng driver para sa pinakamainam
pagganap ng subsystem ng komunikasyon.
NetPIPE ay binibigyan ng maraming mga module na nagbibigay-daan dito na mag-interface sa iba't ibang uri ng
mga layer ng komunikasyon. Medyo madaling magsulat ng mga bagong interface para sa iba pang maaasahan
protocol sa pamamagitan ng paggamit ng mga umiiral na module bilang mga halimbawa.
PAGSUBOK TCP
Ang NPtcp ay maaari na ngayong ilunsad sa dalawang paraan, sa pamamagitan ng manu-manong pagsisimula ng NPtcp sa parehong mga system o sa pamamagitan ng
gamit ang isang nplaunch script. Upang manu-manong simulan ang NPtcp, dapat na simulan ang NetPIPE receiver
una sa remote system gamit ang command:
NPtcp [mga opsyon]
pagkatapos ay ang pangunahing transmiter ay sinimulan sa lokal na sistema na may utos
NPtcp -h receiver_hostname [mga pagpipilian]
Ang anumang mga opsyon na ginamit ay dapat na pareho sa magkabilang panig.
Ang nplaunch script ay gumagamit ng ssh upang ilunsad ang remote na receiver bago simulan ang lokal
tagapaghatid. Para gumamit ng rsh, palitan lang ang nplaunch script.
nplaunch NPtcp -h receiver_hostname [mga pagpipilian]
Ang -b TCP_buffer_sizes itinatakda ng opsyon ang laki ng buffer ng socket ng TCP, na maaaring malaki
nakakaimpluwensya sa maximum na throughput sa ilang system. Isang throughput graph na nag-flatten out
biglang maaaring maging tanda ng pagiging limitado ng mga laki ng socket buffer.
PAGSUBOK mga lampara at MPI-2
Ang paggamit ng interface ng MPI para sa NetPIPE ay nakasalalay sa pagpapatupad ng MPI na ginagamit. Lahat
ay mangangailangan ng bilang ng mga prosesong tutukuyin, kadalasang may a -np 2 argumento.
Ang mga cluster na kapaligiran ay maaaring mangailangan ng isang listahan ng mga host na ginagamit kapag ang bawat trabaho ay pinapatakbo.
Ilagay ang listahan ng mga host sa hostlist pagkatapos, para sa OpenMPI, patakbuhin ang NetPIPE gamit ang:
mpirun --hostfile hostlist -np 2 NPmpi [Mga opsyon sa NetPIPE]
Para sa MPICH2 gamitin sa halip:
mpirun -machinefile hostlist -np 2 NPmpi [Mga opsyon sa NetPIPE]
Upang subukan ang 1-panig na komunikasyon ng pamantayan ng MPI-2, mag-compile gamit ang:
gumawa mpi2
Tumatakbo tulad ng inilarawan sa itaas at ang MPI ay gagamit ng 1-sided na MPI_Put() na mga tawag sa parehong direksyon,
sa bawat pag-block ng receiver hanggang sa ma-overwrite ang huling byte bago i-bounce ang
mensahe pabalik. Gamitin ang -f opsyon na pilitin ang paggamit ng isang bakod na harangan sa halip na isang
overwrite ng huling byte. Ang -g ang opsyon ay gagamit ng mga function ng MP_Get() upang ilipat ang
data sa halip na MP_Put().
PAGSUBOK MVP
Simulan ang pvm system gamit ang:
pvm
at pagdaragdag ng pangalawang makina na may utos ng PVM
idagdag receiver_hostname
Lumabas sa interface ng command line ng PVM gamit ang quit, pagkatapos ay patakbuhin ang PVM NetPIPE receiver sa isa
system na may utos:
NPpvm [mga opsyon]
at patakbuhin ang TCP NetPIPE transmitter sa kabilang system gamit ang command:
NPpvm -h awditibo hostname [mga pagpipilian]
Ang anumang mga opsyon na ginamit ay dapat na pareho sa magkabilang panig. Ang nplaunch script ay maaari ding gamitin
na may NPpvm tulad ng inilarawan sa itaas para sa NPtcp.
PAGSUBOK Pamamaraan
NetPIPE sumusubok sa pagganap ng network sa pamamagitan ng pagpapadala ng ilang mga mensahe sa bawat laki ng bloke,
simula sa lower bound sa mga laki ng mensahe.
Ang laki ng mensahe ay dinaragdagan hanggang sa maabot ang upper bound sa laki ng mensahe o
ang oras upang magpadala ng isang bloke ay lumampas sa isang segundo, na kung saan ay unang nangyari. Mga laki ng mensahe
ay pinili sa mga regular na agwat, at para sa bahagyang mga kaguluhan mula sa kanila upang magbigay ng higit pa
kumpletong pagsusuri ng subsystem ng komunikasyon.
Ang NetPIPE output file ay maaaring i-graph gamit ang isang programa tulad ng gnplotNa (1). Ang output
Ang file ay naglalaman ng tatlong column: ang bilang ng mga byte sa block, ang transfer rate sa bits
bawat segundo, at ang oras para ilipat ang block (kalahati ng round-trip na oras). Ang unang dalawa
karaniwang ginagamit ang mga column upang i-graph ang throughput vs block size, habang ang ikatlong column
nagbibigay ng latency. Halimbawa, ang throughput laban sa harangan ang laki maaaring gawin ang graph
sa pamamagitan ng pag-graph ng mga byte kumpara sa mga bit bawat segundo. Sample gnplot(1) mga utos para sa naturang graph
ay magiging
itakda ang logscale x
plot "np.out"
Opsyon
-a asynchronous mode: prepost receives (MPI, IB modules)
-b TCP_buffer_sizes
Itakda ang pagpapadala at pagtanggap ng TCP buffer sizes (TCP module lang).
-B Burst mode kung saan ang lahat ng natanggap ay na-prepost nang sabay-sabay (MPI, IB modules).
-f Gumamit ng bakod upang harangan para makumpleto (MPI2 module lamang).
-g Gamitin ang MPI_Get() sa halip na MPI_Put() (MPI2 module lang).
-h hostname
Tukuyin ang pangalan ng host ng tatanggap na kumonekta sa (TCP, PVM, IB, GM).
-I I-invalidate ang cache upang sukatin ang pagganap nang walang mga epekto sa cache (karamihan ay nakakaapekto sa IB
at memcpy modules).
-i Gumawa ng integrity check sa halip na isang performance evaluation.
-l starting_msg_size
Tukuyin ang lower bound para sa laki ng mga mensaheng susuriin.
-n nuulit
Itakda ang bilang ng mga pag-uulit para sa bawat pagsubok sa isang pare-pareho. Kung hindi, ang bilang ng
ang mga pag-uulit ay pinili upang magbigay ng tumpak na timing para sa bawat pagsubok. Maging maingat kung
pagtukoy ng mababang numero upang ang oras para sa ping-pong test ay lumampas sa timer
katumpakan.
-O source_offset,dest_offset
Tukuyin ang source at destination offset ng mga buffer mula sa perpektong page
pagkakahanay
-o pangalan ng file output
Tukuyin ang output filename (default ay np.out).
-p perturbation_size
Pinipili ng NetPIPE ang mga laki ng mensahe sa mga regular na pagitan, pinapataas ang mga ito
exponentially mula sa ibabang hangganan hanggang sa itaas na hangganan. Sa bawat punto, ito
sinusubok din ang mga perturbation ng 3 bytes sa itaas at 3 bytes sa ibaba ng bawat test point upang mahanap
idiosyncrasies sa sistema. Maaaring baguhin ang halaga ng perturbation na ito gamit ang -p
opsyon, o i-off ang paggamit -p 0 .
-r Ang opsyong ito ay nire-reset ang mga TCP socket pagkatapos ng bawat pagsubok (TCP module lang). Ito ay
kinakailangan para sa ilang streaming na pagsubok upang makakuha ng magagandang sukat mula noong socket window
maaaring bumagsak ang laki.
-s Itakda ang streaming mode kung saan ang data ay ipinapadala lamang sa isang direksyon.
-S Gumamit ng mga kasabay na pagpapadala (MPI module lamang).
-u upper_bound
Tukuyin ang itaas na hangganan sa laki ng mensaheng sinusuri. Bilang default,
Hihinto ang NetPIPE kapag lumampas sa isang segundo ang oras para magpadala ng block.
-z Tumanggap ng mga mensahe gamit ang MPI_ANY_SOURCE (MPI module lang)
-2 Itakda ang bi-directional mode kung saan sabay na nagpapadala at tumatanggap ang magkabilang panig
(sinusuportahan ng karamihan sa mga module). Maaaring kailanganin mong gamitin -a upang pumili ng asynchronous
komunikasyon para sa MPI upang maiwasan ang mga freeze-up. Para sa TCP, ang maximum na sukat ng pagsubok ay magiging
nililimitahan ng mga laki ng buffer ng TCP.
Gamitin ang NPtcp online gamit ang mga serbisyo ng onworks.net