Več

Kako izbrati več funkcij iz več plasti v OpenLayers?


Ali lahko z uporabo clickTolerance in click izberemo več funkcij iz več vektorskih plasti? Preveril sem dokumente getFeature control in selectFeature control, zdi se, da na ta način ne deluje.

Vem, da je mogoče s pritiskom na tipko Shift izbrati več funkcij. To je v redu v namiznem okolju, vendar v mobilnih napravah / tabličnih računalnikih ni zaželeno. Torej iščem drugačno rešitev.


Ta primer bi vam moral natančno pokazati, kaj potrebujete.

http://openlayers.org/dev/examples/select-feature-multilayer.html


Več navodil z enim navodilom

Enote z navodili, več podatkovnih enot (SIMD) se nanašajo na komponente strojne opreme, ki istočasno izvajajo isto operacijo na več podatkovnih operandih. Značilno je, da enota SIMD kot vhod sprejme dva vektorja (vsak z naborom operandov), izvede enako operacijo na obeh sklopih operandov (en operand iz vsakega vektorja) in prikaže vektor z rezultati. Slika 2.10 prikazuje preprost primer enote SIMD, ki vzporedno izvaja štiri operacije (kot je prikazano spodaj).

Slika 2.10. Primer enote SIMD, ki v tem primeru vzporedno izvaja enake štiri operacije (z različnimi operandi).

Enote SIMD

Enote SIMD so na voljo v Intelovih mikroprocesorjih od nastanka razširitev ISA MMX, SSE (Streaming SIMD Extensions) in AVX (Advanced Vector Extensions) [17]. Razširitve MMX so bile sprva vključene za pospešitev delovanja večpredstavnostnih aplikacij in drugih aplikacijskih domen, ki zahtevajo obdelavo slik in signalov.

ARM je s svojo tehnologijo NEON predstavil tudi razširitve SIMD za arhitekture ARM-Cortex. Enota NEON SIMD je široka 128-bitna in vključuje 16 128-bitnih registrov, ki jih lahko uporabimo kot 32 64-bitnih registrov. Te registre lahko obravnavamo kot vektorje elementov istega podatkovnega tipa, ki so podpisani / nepodpisani 8, 16, 32, 64-bitni tipi in enojna natančnost s plavajočo vejico. Naslednji primer prikazuje, kako je mogoče vektorski stavek, ki vključuje podatke s plavajočo vejico z eno natančnostjo, uporabiti v Cortex-A9 z uporabo enote SIMD.

Običajno operacije v enotah SIMD vključujejo osnovne računske operacije (kot so seštevanje, odštevanje, množenje, negacija) in druge operacije, kot sta absolutni (abs) in kvadratni koren (sqrt).

Drug dejavnik, ki prispeva k večji zmogljivosti enot SIMD, je dejstvo, da je mogoče več podatkovnih elementov hkrati naložiti / shraniti iz / v pomnilnik in izkoristiti celotno širino pomnilniškega podatkovnega vodila. Slika 2.11 prikazuje preprost ilustrativni primer z uporabo enot SIMD in vektorske obdelave. Kot je razvidno iz slike 2.11C, koda, ki uporablja enote SIMD, izvaja ¼ navodil v ¼ urnih ciklov v primerjavi s kodo, ki se izvaja brez enot SIMD (slika 2.11B).

Slika 2.11. Primer uporabe enote SIMD: (A) preprost segment kodnega (B) simbolnega sklopa brez uporabe podpore SIMD (C) s pomočjo SIMD podpore.

Za izkoriščanje enot SIMD je zelo pomembno, da lahko v enem navodilu SIMD združite več dostopov za nalaganje ali shranjevanje. To je mogoče doseči z uporabo sosednjih dostopov do pomnilnika, na primer ob prisotnosti enotnih korakov in kadar so elementi matrike poravnani. V prejšnjem primeru polja A, B, in C do njih se dostopa z enoto stride in predvidevamo, da so poravnane (tj. osnovni naslov vsakega elementa se začne na začetku besede, tj. pomnilniški naslov je večkratnik 4 v 32-bitnem stroju, ki ga je mogoče nasloviti z bajti). Pri obravnavi neuravnanih nizov znotraj zank je običajno poravnati naslove (in tako omogočiti uporabo navodil SIMD) z uporabo transformacij pilinga zanke (glej poglavje 5). Poleg tega prevajalniki pogosto uporabijo delno odvijanje zanke, da se dimenzije polja prilegajo dolžinam vektorjev SIMD. Podrobneje o tem, kako izkoristiti vektorizacijo, ponujamo v opisih na visoki ravni v 6. poglavju.


Prednosti

Različne vrste programske opreme za upravljanje skladišč ponujajo številne prednosti. Uporabnikom pomaga zmanjšati obratovalne stroške z zmanjšanjem delovne sile in prostorskih odpadkov. S programsko opremo WMS lahko podjetja prevzamejo nadzor nad zalogo. Med drugim postane lažje izvajati štetje ciklov, slediti pošiljkam in spremljati datume poteka. Izboljša vidnost inventarja s črtnim kodiranjem, serijskimi številkami in funkcijami označevanja RFID, ki vodijo evidenco organizirano.

WMS pomaga uporabnikom optimizirati prevoz zalog znotraj in zunaj s pomočjo funkcije sledenja zalog. Obstajajo tudi orodja za optimizacijo dajatev za prevzem, pot, reže, nabiranje, pakiranje in pošiljanje.

WMS ponuja orodje ali modul za spopadanje s katerim koli vidikom skladiščnih sistemov in ima vsak svoje prednosti in slabosti.


Vsebina

Sheme usmerjanja se razlikujejo po načinu dostave sporočil:

    pošlje sporočilo enemu določenemu vozlišču s pomočjo ena na ena povezava med pošiljateljem in ciljem: vsak ciljni naslov enolično identificira eno končno točko sprejemnika. pošlje sporočilo vsem vozliščem v omrežju s pomočjo ena za vse povezava enega samega datagrama enega pošiljatelja preusmeri na vse morebitne več končnih točk, povezanih z naslovom oddajanja. Omrežje samodejno replicira datagrame, kot je potrebno, da doseže vse prejemnike v obsegu oddajanja, ki je običajno celotno omrežno podomrežje. pošlje sporočilo skupini vozlišč, ki so izrazile zanimanje za prejemanje sporočila z uporabo ena-do-mnogih-mnogih ali veliko do mnogih asociacijski datagrami se istočasno preusmerijo v enem prenosu do številnih prejemnikov. Multicast se od oddajanja razlikuje po tem, da ciljni naslov označuje podskupino, ne nujno vseh, dostopnih vozlišč. pošlje sporočilo kateremu koli iz skupine vozlišč, običajno tistemu, ki je najbližje viru z uporabo ena do ena od mnogih asociacija, kjer se datagrami preusmerijo na katerega koli člana skupine potencialnih sprejemnikov, ki so vsi identificirani z istim ciljnim naslovom. Algoritem usmerjanja izbere posameznega sprejemnika iz skupine, na podlagi katere je najbližji glede na neko mero razdalje. pošlje sporočilo skupini vozlišč v omrežju glede na njihov geografski položaj. Gre za specializirano obliko več naslovnic, ki jo uporabljajo nekateri usmerjevalni protokoli za mobilna ad hoc omrežja.

Unicast je prevladujoča oblika pošiljanja sporočil na internetu. Ta članek se osredotoča na algoritme usmerjanja enosmernega usmerjanja.

Pri statičnem usmerjanju lahko majhna omrežja uporabljajo ročno konfigurirane usmerjevalne tabele. Večja omrežja imajo zapletene topologije, ki se lahko hitro spreminjajo, zaradi česar je ročna izdelava usmerjevalnih tabel neizvedljiva. Kljub temu večina javnega komutiranega telefonskega omrežja (PSTN) uporablja vnaprej izračunane usmerjevalne tabele z nadomestnimi potmi, če je najbolj neposredna pot blokirana (glejte usmerjanje v PSTN).

Dinamično usmerjanje skuša to težavo rešiti s samodejno izdelavo usmerjevalnih tabel na podlagi informacij, ki jih prenašajo usmerjevalni protokoli, kar omrežju omogoča skoraj neodvisno delovanje, da se izogne ​​okvaram in blokadam omrežja. Dinamično usmerjanje prevladuje v internetu. Primeri protokolov in algoritmov dinamičnega usmerjanja vključujejo protokol za usmerjanje informacij (RIP), najprej odprto najkrajšo pot (OSPF) in protokol za izboljšano usmerjanje notranjih prehodov (EIGRP).

Algoritmi vektorja razdalje Uredi

Vektorski algoritmi razdalje uporabljajo algoritem Bellman – Ford. Ta pristop dodeli a stroškov številko do vsake povezave med posameznimi vozlišči v omrežju. Vozlišča pošiljajo informacije od točke A do točke B po poti, ki ima najnižjo vrednost Skupni stroški (tj. vsota stroškov povezav med uporabljenimi vozlišči).

Ko se vozlišče prvič zažene, ve le za svoje neposredne sosede in neposredne stroške, povezane z doseganjem njih. (Te informacije - seznam ciljev, skupni stroški vsakega od njih in naslednji hmelj za pošiljanje podatkov do tja - sestavlja usmerjevalno tabelo, oz tabela razdalje.) Vsako vozlišče redno pošilja vsakemu sosednjemu vozlišču svojo trenutno oceno skupnih stroškov, da pride do vseh ciljev, ki jih pozna. Sosednja vozlišča preučijo te informacije in jih primerjajo s tem, kar že vedo, kar pomeni izboljšanje tistega, kar že imajo, vstavijo v svojo tabelo. Sčasoma vsa vozlišča v omrežju odkrijejo najboljši naslednji skok in skupne stroške za vse destinacije.

Ko omrežno vozlišče pade, vsa vozlišča, ki so ga uporabila kot naslednji skok, zavržejo vnos in posredujejo posodobljene informacije o usmerjanju vsem sosednjim vozliščem, ki nato postopek ponovijo. Sčasoma vsa vozlišča v omrežju prejmejo posodobitve in odkrijejo nove poti do vseh ciljev, ki ne vključujejo spodnjega vozlišča.

Algoritmi stanja povezav Uredi

Pri uporabi algoritmov stanja povezave je grafični zemljevid omrežja temeljni podatek za vsako vozlišče. Za izdelavo svojega zemljevida vsako vozlišče preplavi celotno omrežje z informacijami o drugih vozliščih, s katerimi se lahko poveže. Vsako vozlišče nato samostojno zbere te podatke v zemljevid. Z uporabo tega zemljevida vsak usmerjevalnik samostojno določi najcenejšo pot od sebe do vsakega drugega vozlišča z uporabo standardnega algoritma najkrajših poti, kot je Dijkstrin algoritem. Rezultat je drevesni graf, ukoreninjen na trenutnem vozlišču, tako da je pot skozi drevo od korena do katerega koli drugega vozlišča pot do tega vozlišča z najmanj stroški. Nato to drevo služi za izdelavo usmerjevalne tabele, ki določa najboljši naslednji skok, ki ga lahko dosežemo od trenutnega vozlišča do katerega koli drugega vozlišča.

Optimiziran algoritem za usmerjanje stanja povezav Uredi

Algoritem usmerjanja stanja povezav, optimiziran za mobilna ad hoc omrežja, je optimiziran protokol za usmerjanje stanja povezav (OLSR). [1] OLSR je proaktiven in uporablja sporočila Hello and Topology Control (TC) za odkrivanje in razširjanje informacij o stanju povezave prek mobilnega ad hoc omrežja. S pomočjo pozdravnih sporočil vsako vozlišče odkrije informacije o sosedih v dveh skokih in izbere nabor večtočkovni releji (MPR). MPR razlikujejo OLSR od drugih protokolov za usmerjanje stanja povezave.

Protokol vektorske poti Uredi

Usmerjanje vektorja razdalje in stanja povezave sta protokola usmerjanja znotraj domene. Uporabljajo se znotraj avtonomnega sistema, med avtonomnimi sistemi pa ne. Oba protokola usmerjanja postaneta nerešljiva v velikih omrežjih in ju ni mogoče uporabiti pri usmerjanju med domenami. Usmerjanje vektorjev na daljavo je nestabilno, če je v domeni več preskokov. Usmerjanje stanja povezav potrebuje znatna sredstva za izračun tabel usmerjanja. Zaradi poplav ustvarja tudi gost promet.

Usmerjanje poti po vektorju se uporablja za usmerjanje med domenami. Podobno je usmerjanju vektorjev na daljavo. Usmerjanje poti z vektorji poti predpostavlja, da eno vozlišče (lahko jih je veliko) v vsakem avtonomnem sistemu deluje v imenu celotnega avtonomnega sistema. To vozlišče se imenuje vozlišče zvočnika. Vozniško vozlišče ustvari usmerjevalno tabelo in jo oglašuje sosednjim vozliščem zvočnikov v sosednjih avtonomnih sistemih. Ideja je enaka usmerjanju vektorjev na daljavo, le da lahko samo vozlišča zvočnikov v vsakem avtonomnem sistemu komunicirajo med seboj. Zvočniško vozlišče oglašuje pot, ne metriko, vozlišč v svojem avtonomnem sistemu ali drugih avtonomnih sistemih.

Algoritem usmerjanja vektorja poti je podoben algoritmu vektorja razdalje v smislu, da vsak mejni usmerjevalnik sosednjemu usmerjevalniku oglašuje cilje, ki jih lahko doseže. Namesto oglaševanja omrežij glede na cilj in razdaljo do tega cilja se omrežja oglašujejo kot ciljni naslovi in ​​opisi poti za dosego teh ciljev. Pot, izražena z doslej prehojenimi domenami (ali konfederacijami), se vodi v posebnem atributu poti, ki beleži zaporedje usmerjevalnih domen, skozi katere so šle informacije o dosegljivosti. Pot je definirana kot seznanjanje med ciljem in atributi poti do tega cilja, torej ime, usmerjanje vektorja poti Usmerjevalniki prejmejo vektor, ki vsebuje poti do nabora ciljev. [2]

Izbira poti vključuje uporabo meritve usmerjanja na več poti, da izberemo (ali predvidevamo) najboljšo pot. Večina usmerjevalnih algoritmov hkrati uporablja samo eno omrežno pot. Multi-path usmerjanje in posebej enakovredne tehnike usmerjanja na več poti omogočajo uporabo več alternativnih poti.

V računalniškem omrežju se metrika izračuna z usmerjevalnim algoritmom in lahko zajema informacije, kot so pasovna širina, zakasnitev omrežja, število skokov, stroški poti, obremenitev, največja enota prenosa, zanesljivost in stroški komunikacije. [3] V tabeli usmerjanja so shranjene le najboljše možne poti, medtem ko lahko podatkovne baze stanja stanja ali topološke povezave shranijo tudi vse druge informacije.

V primeru prekrivanja ali enakih poti algoritmi prednostno upoštevajo naslednje elemente, da se odločijo, katere poti namestiti v tabelo usmerjanja:

  1. Dolžina predpone: Vedno je zaželen ustrezen vnos tabele poti z daljšo masko podomrežja, saj natančneje določa cilj.
  2. Metrična: Pri primerjavi poti, naučenih po istem protokolu usmerjanja, je zaželena nižja metrika. Meritev ni mogoče primerjati med potmi, pridobljenimi iz različnih protokolov usmerjanja.
  3. Upravna distanca: Pri primerjavi vnosov tabele poti iz različnih virov, kot so različni protokoli usmerjanja in statična konfiguracija, manjša administrativna razdalja kaže na bolj zanesljiv vir in s tem na prednostno pot.

Ker je metrika usmerjanja specifična za določen protokol usmerjanja, morajo usmerjevalniki z več protokoli uporabljati neko zunanjo hevristiko za izbiro poti, ki se jih naučijo iz različnih protokolov usmerjanja. Usmerjevalniki Cisco na primer vsaki poti pripišejo vrednost, znano kot upravna razdalja, pri čemer manjše upravne razdalje kažejo poti, pridobljene iz protokola, za katerega velja, da je bolj zanesljiv.

Lokalni skrbnik lahko nastavi poti, specifične za gostitelja, ki zagotavljajo večji nadzor nad uporabo omrežja, dovoljenja za testiranje in boljšo splošno varnost. To je uporabno za odpravljanje napak v omrežnih povezavah ali usmerjevalnih tabelah.

V nekaterih majhnih sistemih ena centralna naprava predčasno določi celotno pot vsakega paketa. V nekaterih drugih majhnih sistemih, katera koli robna naprava vbrizga paket v omrežje, predčasno določi celotno pot tega paketa. V obeh primerih mora naprava za načrtovanje poti poznati veliko informacij o tem, katere naprave so povezane v omrežje in kako so med seboj povezane. Ko ima te informacije, lahko z algoritmom, kot je algoritem za iskanje A *, poišče najboljšo pot.

V hitrih sistemih se vsako sekundo odda toliko paketov, da je nemogoče, da bi posamezna naprava izračunala celotno pot za vsak paket. Zgodnji hitri sistemi so to rešili s preklapljanjem vezij tako, da so enkrat nastavili pot za prvi paket med nekaterim virom in nekateri cilji kasneje paketi med istim virom in istim ciljem še naprej sledijo isti poti, ne da bi se preračunali do razpada vezja. Kasneje hitri sistemi vbrizgajo pakete v omrežje, ne da bi katera koli naprava kdaj izračunala popolno pot za pakete.

V velikih sistemih je povezav med napravami toliko in te povezave se tako pogosto spreminjajo, da je nemogoče, da bi katera koli naprava sploh vedela, kako so vse naprave med seboj povezane, še manj pa izračunala celotno pot skozi njih. Takšni sistemi običajno uporabljajo usmerjanje naslednjega preskoka.

Večina sistemov uporablja deterministični algoritem dinamičnega usmerjanja. Ko naprava izbere pot do določenega končnega cilja, ta naprava vedno izbere isto pot do tega cilja, dokler ne prejme informacij, zaradi katerih se ji zdi neka druga pot boljša.

Nekaj ​​usmerjevalnih algoritmov ne uporablja determinističnega algoritma, da bi poiskal najboljšo povezavo za paket, ki pride iz prvotnega vira do končnega cilja. Namesto tega se nekaj algoritmov, da bi se izognili zastojem v paketnih sistemih, uporablja naključni algoritem - Valiantova paradigma -, ki usmerja pot do naključno izbranega vmesnega cilja in od tam do pravega končnega cilja. [4] [5] V mnogih zgodnjih telefonskih stikalih je bil pogosto uporabljen naključni kazalnik za izbiro začetka poti skozi večstopenjsko preklopno tkanino.

Glede na aplikacijo, za katero se izvede pot, se lahko uporabijo različne meritve. Na primer, za spletne zahteve lahko uporabimo najmanjše zakasnitvene poti, da zmanjšamo čas nalaganja spletne strani, ali za množične prenose podatkov lahko izberemo najmanj izkoriščeno pot za uravnoteženje obremenitve v omrežju in povečanje prepustnosti. Priljubljen cilj izbire poti je zmanjšati povprečni čas zaključka prometnih tokov in skupno porabo pasovne širine omrežja. Pred kratkim je bila predlagana metrika za izbiro poti, ki izračuna kot skupno metriko skupno število bajtov, načrtovanih na robovih na pot. [6] Na voljo je empirična analiza več meritev izbire poti, vključno s tem novim predlogom. [7]

V nekaterih omrežjih je usmerjanje zapleteno, ker nobena enota ni odgovorna za izbiro poti, temveč je pri izbiri poti ali celo delov ene poti vključenih več entitet. Zapleti ali neučinkovitost lahko nastanejo, če ti subjekti izberejo poti za optimizacijo lastnih ciljev, ki so lahko v nasprotju s cilji drugih udeležencev.

Klasičen primer vključuje promet v cestnem sistemu, pri katerem vsak voznik izbere pot, ki minimalizira njihov čas potovanja. S takšno usmeritvijo so lahko ravnotežne poti daljše od optimalne za vse voznike. Braessov paradoks zlasti kaže, da dodajanje nove ceste lahko podaljšati čas potovanja za vse voznike.

V modelu z enim agentom, ki se na primer uporablja za usmerjanje avtomatiziranih vodenih vozil (AGV) na terminalu, se za vsako vozilo rezervira, da se prepreči hkratna uporaba istega dela infrastrukture. Ta pristop se imenuje tudi usmerjanje s kontekstom. [8]

Internet je razdeljen na avtonomne sisteme (AS), kot so ponudniki internetnih storitev (ISP), od katerih vsak nadzoruje poti, ki vključujejo njegovo omrežje, na več ravneh. Najprej se poti na ravni AS izberejo prek protokola BGP, ki ustvari zaporedje AS-jev, skozi katere tečejo paketi. Vsak AS ima lahko več poti, ki jih ponujajo sosednji AS, med katerimi lahko izbirate. Njegova odločitev pogosto vključuje poslovne odnose s temi sosednjimi AS-ji [9], ki morda niso povezani s kakovostjo poti ali zakasnitvijo. Drugič, ko je izbrana pot na ravni AS, je pogosto več ustreznih poti na ravni usmerjevalnika, delno zato, ker sta lahko dva ponudnika internetnih storitev povezana na več lokacijah. Pri izbiri poti enojnega usmerjevalnika je običajna praksa, da vsak ponudnik internetnih storitev uporablja usmerjanje vročega krompirja: pošiljanje prometa po poti, ki zmanjša razdaljo prek lastnega omrežja ponudnika internetnih storitev - tudi če ta pot podaljša skupno razdaljo do cilja.

Razmislite o dveh ponudnikih internetnih storitev, A in B. Vsak je prisoten v New Yorku, povezan s hitro povezavo z zakasnitvijo 5 ms - vsak v Londonu pa je povezan s 5 ms povezavo. Recimo, da imata oba ponudnika internetnih storitev čezatlantske povezave, ki povezujeta njuni omrežji, vendar A 'povezava ima zakasnitev 100 ms, zakasnitve B pa 120 ms. Ko usmerjate sporočilo iz vira v A London London do cilja v B omrežje New York, A lahko takoj pošlje sporočilo na B v Londonu. To prihrani A delo pošilja po dragi čezatlantski povezavi, vendar povzroči, da sporočilo zakasni 125 ms, ko bi bila druga pot 20 ms hitrejša.

Študija meritev internetnih poti iz leta 2003 je pokazala, da je med pari sosednjih ponudnikov internetnih storitev več kot 30% poti napihnilo zakasnitev zaradi usmerjanja vročega krompirja, pri čemer je 5% poti zamujalo vsaj za 12 ms. Inflacijo zaradi izbire poti na ravni AS, čeprav znatno, so pripisovali predvsem pomanjkanju mehanizma BGP za neposredno optimizacijo za zakasnitev in ne sebičnim usmeritvam usmerjanja. Predlagano je bilo tudi, da bi bili ponudniki internetnih storitev, če bi bil vzpostavljen ustrezen mehanizem, pripravljeni sodelovati, da bi zmanjšali zakasnitve in ne uporabili usmerjanja vročih krompirjev. [10]

Tak mehanizem so kasneje objavili isti avtorji, najprej za primer dveh ponudnikov internetnih storitev [11] in nato za globalni primer. [12]

Ko internet in IP omrežja postajajo ključna poslovna orodja, se povečuje zanimanje za tehnike in metode za spremljanje usmerjanja omrežij. Nepravilno usmerjanje ali težave z usmerjanjem povzročajo neželeno poslabšanje zmogljivosti, odpiranje in / ali izpad. Spremljanje usmerjanja v omrežju se doseže z orodji in tehnikami za analizo poti. [13]

V omrežjih, kjer je na voljo logično centraliziran nadzor nad stanjem posredovanja, na primer z uporabo programsko opredeljenega omrežja, se lahko uporabljajo tehnike usmerjanja, katerih namen je optimizirati globalne in omrežne meritve uspešnosti. To so uporabila velika internetna podjetja, ki upravljajo številne podatkovne centre na različnih geografskih lokacijah, pritrjenih z uporabo zasebnih optičnih povezav, med katerimi so Microsoftov globalni WAN, [14] Facebookov Express Backbone [15] in Googlov B4. [16] Globalne meritve uspešnosti za optimizacijo vključujejo povečanje izkoriščenosti omrežja, zmanjšanje časa zaključka pretoka prometa in povečanje prometa, dostavljenega pred določenimi roki. Zmanjšanje časa dokončanja pretoka v zasebnem omrežju WAN zlasti ni bilo deležno velike pozornosti raziskovalne skupnosti. Ker pa se povečuje število podjetij, ki upravljajo globalno distribuirane podatkovne centre, povezane z zasebnimi omrežji med podatkovnimi centri, je verjetno, da se bodo na tem področju povečala prizadevanja za raziskave. [17] V najnovejšem delu o zmanjševanju časa zaključka pretokov prek zasebnega WAN-a je obravnavano modeliranje usmerjanja kot problem optimizacije grafov s potiskanjem vseh čakalnih vrst do končnih točk. Avtorji predlagajo tudi hevristiko za učinkovito reševanje problema ob žrtvovanju zanemarljive zmogljivosti. [18]


Mdhntd

Kako bi nadzorovali nadvojnike v pozni železni dobi?

Planckova konstanta za matematike

Zakaj čarovniki ne uporabljajo zapestnih trakov za zaščito pred razorožujočimi čarovniki?

pridobivanje sintaksne napake v preprostem skriptu bash

Naredite leto 1998 z najmanj možnimi številkami 8

Kako stabilizirati sedežno oporo in sedlo kolesa, ko je povsem navzgor?

Zakaj prodajalci skrbijo za polog?

Kakšen je matematični zapis za zaokrožitev danega števila na najbližje celo število?

Kako lahko v Nemčiji čim bolj vplivam na svoje dobrodelne prispevke?

Zakaj so kdaj izdelali manjše senzorje od polnega formata?

Ali ibuprofen ali paracetamol povzročata izgubo sluha?

Ali je koda "postali boste strokovnjak za vsebino" za "100% časa delate sami"?

So senzorji vesoljske kamere običajno okrogli ali kvadratni?

Kako naj rečem "domiselno" v nemščini, ne da bi zvenelo omalovažujoče?

Je nizka čustvena inteligenca povezana z desničarskimi in predsodki?

Kje razkriti ranljivost ničelnega dne

Ne morem najti funkcije Database Mail v SQL Server Express 2012 SP1

Naj bo 2019 z enoštevilkami

Novo ustvarjeni datotečni sistem XFS prikazuje uporabljenih 78 GB

Kako EVA obleke upravljajo z izločanjem vode?

Način, združljiv s POSIX, za pridobitev uporabniškega imena, povezanega z ID uporabnika

Ustvarjanje sloja z izbranimi vrednostmi (deljeno z vejicami) iz drugega sloja - potrebna poizvedba ali model

Če potem še v graditelju modelov ArcGIS Kako odstraniti vejice iz vrednosti polj v več datotekah? Opredelitev Omejitve izraza poizvedbe v ArcGIS 10.2.2 Odsek sloja z izbranim predmetom iz drugega sloja v QGIS Optimizacija zmogljivosti na lokalni namestitvi QGIS + PostGIS? Kako dodeliti novo ime za vrednosti, izbrane iz dveh stolpcev? Ustvarjanje poizvedbe o definiciji na plasti brez decimalnih vrednosti v ArcGIS za namizje? Spreminjanje posameznega znaka v tabeli atributov z ArcPy? Izbira po lokaciji (več datotek oblik v ArcGIS ModelBuilder) Razdelitev kode ID-ja niza na različne dele

V ArcMap 10.6 imam zelo velik nabor podatkov in rad bi ustvaril podmnožico, ki iz polja, ki ima v mojem primeru seznam več kod in besed, izbere samo vrstice s posebnimi atributi (nekateri s posebnimi znaki).

Recimo, da želim nabor podatkov, ki vsebuje samo vrstice s kodo BMX-3000 in INDEX-AB, ne pa tudi drugih vrednosti.

Ali mi lahko kdo predlaga ustrezno poizvedbo kode ali korake za izdelavo modela?

V ArcMap 10.6 imam zelo velik nabor podatkov in rad bi ustvaril podmnožico, ki iz polja, ki ima v mojem primeru seznam več kod in besed, izbere samo vrstice s posebnimi atributi (nekateri s posebnimi znaki).

Recimo, da želim nabor podatkov, ki vsebuje samo vrstice s kodo BMX-3000 in INDEX-AB, ne pa tudi drugih vrednosti.

Ali mi lahko kdo predlaga ustrezno poizvedbo kode ali korake za izdelavo modela?

V ArcMap 10.6 imam zelo velik nabor podatkov in rad bi ustvaril podmnožico, ki iz polja, ki ima v mojem primeru seznam več kod in besed, izbere samo vrstice s posebnimi atributi (nekateri s posebnimi znaki).

Recimo, da želim nabor podatkov, ki vsebuje samo vrstice s kodo BMX-3000 in INDEX-AB, ne pa tudi drugih vrednosti.

Ali mi lahko kdo predlaga ustrezno poizvedbo kode ali korake za izdelavo modela?

V ArcMap 10.6 imam zelo velik nabor podatkov in rad bi ustvaril podmnožico, ki iz polja, ki ima v mojem primeru seznam več kod in besed, izbere samo vrstice s posebnimi atributi (nekateri s posebnimi znaki).

Recimo, da želim nabor podatkov, ki vsebuje samo vrstice s kodo BMX-3000 in INDEX-AB, ne pa tudi drugih vrednosti.

Ali mi lahko kdo predlaga ustrezno poizvedbo kode ali korake za izdelavo modela?


Kako izbrati več funkcij iz več plasti v OpenLayers? - Geografski informacijski sistemi

Pri razporejanju več procesorjev več CPU & # 8217s so na voljo in s tem Skupna raba tovora postane mogoče. Vendar je načrtovanje več procesorjev več zapleteno v primerjavi z enim procesorjem. Pri razporejanju več procesorjev obstajajo primeri, ko so procesorji enaki, tj. HOMOGENI, glede na njihovo funkcionalnost lahko uporabimo kateri koli procesor, ki je na voljo za zagon katerega koli procesa v čakalni vrsti.

Pristopi k razporejanju več procesorjev & # 8211

Eden od pristopov je, ko vse odločitve o načrtovanju in obdelavi V / I obdela en sam procesor, ki se imenuje Glavni strežnik drugi procesorji pa izvajajo samo uporabniška koda. To je preprosto in zmanjšuje potrebo po skupni rabi podatkov. Ta celotni scenarij se imenuje Asimetrična večprocesorska obdelava.

Uporablja se drugi pristop Simetrična večprocesorska obdelava kjer je vsak procesor samorazporejanje. Vsi procesi so lahko v skupni čakalni vrsti ali pa ima vsak procesor svojo zasebno čakalno vrsto za pripravljene procese. Načrtovanje se nadaljuje tako, da načrtovalnik za vsak procesor preuči pripravljeno vrsto in izbere postopek za izvedbo.

Afiniteta procesorja & # 8211

Afiniteta procesorja pomeni, da ima proces afiniteta za procesor, na katerem trenutno deluje.
Ko se postopek izvaja na določenem procesorju, obstajajo določeni učinki na začasni pomnilnik. Podatki, ki so bili nazadnje dostopni v procesu, zapolnijo predpomnilnik procesorja in posledično je zaporedni dostop procesa do pomnilnika pogosto zadovoljen v predpomnilniku. Zdaj, če se postopek preseli na drug procesor, je treba vsebino začasnega pomnilnika razveljaviti za prvi procesor in predpomnilnik za drugi procesor je treba ponovno naseliti. Zaradi visokih stroškov razveljavitve in ponovnega zapolnjevanja predpomnilnikov se večina sistemov SMP (simetrična večprocesorska obdelava) poskuša izogniti migraciji procesov iz enega procesorja v drugega in poskuša ohraniti, da se postopek izvaja na istem procesorju. To je znano kot DOLOČENOST PROCESORJA.

Obstajata dve vrsti afinitete procesorja:

  1. Mehka afiniteta & # 8211 Kadar ima operacijski sistem politiko, da poskuša obdržati postopek, ki teče na istem procesorju, vendar ne jamči, da bo to storil, se to imenuje mehka afiniteta.
  2. Hard Affinity & # 8211 Hard Affinity omogoča, da postopek določi podskupino procesorjev, na katerih se lahko izvaja. Nekateri sistemi, kot je Linux, izvajajo mehko afiniteto, nudijo pa tudi nekatere sistemske klice, kot je sched_setaffinity () ki podpira trdo afiniteto.

Izravnava obremenitve & # 8211

Uravnavanje obremenitve je pojavov ki ohranja delovna obremenitev enakomerno razdeljeno v vseh procesorjih v sistemu SMP. Izravnava obremenitve je potrebna samo v sistemih, kjer ima vsak procesor svojo zasebno čakalno vrsto procesa, ki je primeren za izvedbo. Izravnava obremenitve ni potrebna, ker ko procesor postane nedejaven, takoj izvleče izvedljiv postopek iz običajne čakalne vrste. Pri SMP (simetrična večprocesorska obdelava) je pomembno, da je obremenitev uravnotežena med vsemi procesorji, da v celoti izkoristite prednosti več procesorjev, sicer bo eden ali več procesorjev brez dela, medtem ko imajo drugi procesorji veliko obremenitev, skupaj s seznami procesorjev, ki čakajo na CPU.

  1. Push migracija & # 8211 Pri potisni migraciji opravilo rutinsko preveri obremenitev vsakega procesorja in če ugotovi neravnovesje, enakomerno porazdeli obremenitev na vsak procesor s premikanjem procesov iz preobremenjenih v mirujoče ali manj zasedene procesorje.
  2. Potegni migracijo & # 8211 Pull Migracija se zgodi, ko neaktivni procesor potegne čakalno nalogo iz zasedenega procesorja za njeno izvajanje.

Večjedrni procesorji & # 8211

V večjedrnih procesorjih več procesorjev jedra so mesta na istem fizičnem čipu. Vsako jedro ima nastavljen register, da ohranja svoje arhitekturno stanje, zato je operacijskemu sistemu prikazan kot ločen fizični procesor. SMP sistemi ki uporabljajo večjedrne procesorje, so hitrejši in porabljeni manj moči kot sistemi, v katerih ima vsak procesor svoj fizični čip.

Vendar lahko večjedrni procesorji zaplete težave z razporejanjem. Ko procesor dostopa do pomnilnika, porabi veliko časa, da čaka, da bodo podatki na voljo. Ta situacija se imenuje STALIŠČE ZA SPOMIN. Pojavi se iz različnih razlogov, na primer predpomnilnik, ki dostopa do podatkov, ki niso v začasnem pomnilniku. V takih primerih lahko procesor porabi do petdeset odstotkov svojega časa, ko čaka, da bodo podatki na voljo iz pomnilnika. Da bi rešili to težavo, so nedavni modeli strojne opreme izvedli večnitna procesorska jedra, v katerih je vsakemu jedru dodeljena dve ali več niti strojne opreme. Če torej ena nit zastane med čakanjem na pomnilnik, lahko jedro preklopi na drugo nit.

  1. Grobozrnato večnitnost & # 8211 V grobo zrnatem večnitnem toku se nit izvaja na procesorju, dokler se ne zgodi dogodek z dolgo zakasnitvijo, na primer zastoj pomnilnika, zaradi zakasnitve, ki jo povzroči dogodek z dolgo zakasnitvijo, mora procesor preklopiti na drugo nit, da začne izvajati. Stroški preklapljanja med nitmi so visoki, saj je treba cevovod navodil zaključiti, preden lahko druga nit začne izvajati jedro procesorja. Ko se ta nova nit začne izvajati, začne polniti cevovod s svojimi navodili.
  2. Drobnozrnato večnitnost & # 8211 This multithreading switches between threads at a much finer level mainly at the boundary of an instruction cycle. The architectural design of fine grained systems include logic for thread switching and as a result the cost of switching between threads is small.

Virtualization and Threading –

In this type of multiple-processor scheduling even a single CPU system acts like a multiple-processor system. In a system with Virtualization, the virtualization presents one or more virtual CPU to each of virtual machines running on the system and then schedules the use of physical CPU among the virtual machines. Most virtualized environments have one host operating system and many guest operating systems. The host operating system creates and manages the virtual machines. Each virtual machine has a guest operating system installed and applications run within that guest.Each guest operating system may be assigned for specific use cases,applications or users including time sharing or even real-time operation. Any guest operating-system scheduling algorithm that assumes a certain amount of progress in a given amount of time will be negatively impacted by the virtualization. A time sharing operating system tries to allot 100 milliseconds to each time slice to give users a reasonable response time. A given 100 millisecond time slice may take much more than 100 milliseconds of virtual CPU time. Depending on how busy the system is, the time slice may take a second or more which results in a very poor response time for users logged into that virtual machine. The net effect of such scheduling layering is that individual virtualized operating systems receive only a portion of the available CPU cycles, even though they believe they are receiving all cycles and that they are scheduling all of those cycles.Commonly, the time-of-day clocks in virtual machines are incorrect because timers take no longer to trigger than they would on dedicated CPU’s.

Virtualizations can thus undo the good scheduling-algorithm efforts of the operating systems within virtual machines.

Bralec pozornosti! Ne prenehajte se učiti zdaj. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.


Hyper-Threading

Hyper-threading was Intel’s first attempt to bring parallel computation to consumer PCs. It debuted on desktop CPUs with the Pentium 4 HT back in 2002. The Pentium 4’s of the day featured just a single CPU core, so it could really only perform one task at a time—even if it was able to switch between tasks quickly enough that it seemed like multitasking. Hyper-threading attempted to make up for that.

A single physical CPU core with hyper-threading appears as two logical CPUs to an operating system. The CPU is still a single CPU, so it’s a little bit of a cheat. While the operating system sees two CPUs for each core, the actual CPU hardware only has a single set of execution resources for each core. The CPU pretends it has more cores than it does, and it uses its own logic to speed up program execution. In other words, the operating system is tricked into seeing two CPUs for each actual CPU core.

Hyper-threading allows the two logical CPU cores to share physical execution resources. This can speed things up somewhat—if one virtual CPU is stalled and waiting, the other virtual CPU can borrow its execution resources. Hyper-threading can help speed your system up, but it’s nowhere near as good as having actual additional cores.

Thankfully, hyper-threading is now a “bonus.” While the original consumer processors with hyper-threading only had a single core that masqueraded as multiple cores, modern Intel CPUs now have both multiple cores and hyper-threading technology. Your dual-core CPU with hyper-threading appears as four cores to your operating system, while your quad-core CPU with hyper-threading appears as eight cores. Hyper-threading is no substitute for additional cores, but a dual-core CPU with hyper-threading should perform better than a dual-core CPU without hyper-threading.


Ytdjtkui

Why didn't the Event Horizon Telescope team mention Sagittarius A*?

Did Section 31 appear in Star Trek: The Next Generation?

Have you ever entered Singapore using a different passport or name?

If a Druid sees an animal’s corpse, can they Wild Shape into that animal?

How come people say “Would of”?

A poker game description that does not feel gimmicky

Why isn't the circumferential light around the M87 black hole's event horizon symmetric?

Is this app Icon Browser Safe/Legit?

Delete all lines which don't have n characters before delimiter

Resizing object distorts it (Illustrator CC 2018)

1hr skype tenure track application interview

Does a dangling wire really electrocute me if I'm standing in water?

Deal with toxic manager when you can't quit

Protecting Dualbooting Windows from dangerous code (like rm -rf)

Multiply Two Integer Polynomials

Can you compress metal and what would be the consequences?

How to deal with fear of taking dependencies

What is the closest word meaning "respect for time / mindful"

How are circuits which use complex ICs normally simulated?

Why do we hear so much about the Trump administration deciding to impose and then remove tariffs?

Why was M87 targetted for the Event Horizon Telescope instead of Sagittarius A*?

If I score a critical hit on an 18 or higher, what are my chances of getting a critical hit if I roll 3d20?

Can we generate random numbers using irrational numbers like π and e?


How to select multiple Features from multiple Layers in OpenLayers? - Geographic Information Systems

  • Select command allows to monitor multiple file descriptors, waiting until one of the file descriptors become active.
  • For example, if there is some data to be read on one of the sockets select will provide that information.
  • Select works like an interrupt handler, which gets activated as soon as any file descriptor sends any data.

Data structure used for select: fd_set
It contains the list of file descriptors to monitor for some activity.
There are four functions associated with fd_set:

Activating select: Please read the man page for select to check all the arguments for select command.

Implementation:

Compile the file and run the server.
Use telnet to connect the server as a client.

Try running on different machines using following command:

  • We have created a fd_set variable readfds, which will monitor all the active file descriptors of the clients plus that of the main server listening socket.
  • Whenever a new client will connect, master_socket will be activated and a new fd will be open for that client. We will store its fd in our client_list and in the next iteration we will add it to the readfds to monitor for activity from this client.
  • Similarly, if an old client sends some data, readfds will be activated and we will check from the list of existing client to see which client has send the data.

Alternatives:
There are other functions that can perform tasks similar to select. pselect , poll , ppoll

This article is contributed by Akshat Sinha. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to [email protected] Oglejte si svoj članek na glavni strani GeeksforGeeks in pomagajte drugim Geeksom.

Prosimo, pišite komentarje, če se vam zdi kaj napačnega ali če želite deliti več informacij o zgoraj obravnavani temi.


Combine Multiple Plots

This example shows how to combine plots in the same axes using the hold function, and how to create multiple axes in a figure using the tiledlayout function. The tiledlayout function is available starting in R2019b. If you are using an earlier release, use the subplot function instead.

Combine Plots in Same Axes

By default, new plots clear existing plots and reset axes properties, such as the title. However, you can use the hold on command to combine multiple plots in the same axes. For example, plot two lines and a scatter plot. Then reset the hold state to off.

When the hold state is on, new plots do not clear existing plots or reset axes properties, such as the title or axis labels. The plots cycle through colors and line styles based on the ColorOrder and LineStyleOrder properties of the axes. The axes limits and tick values might adjust to accommodate new data.

Display Multiple Axes in a Figure

You can display multiple axes in a single figure by using the tiledlayout function. This function creates a tiled chart layout containing an invisible grid of tiles over the entire figure. Each tile can contain an axes for displaying a plot. After creating a layout, call the nexttile function to place an axes object into the layout. Then call a plotting function to plot into the axes. For example, create two plots in a 2-by-1 layout. Add a title to each plot.

Opomba: This code uses the tiledlayout function, which is available starting in R2019b. If you are using an earlier release, use the subplot function instead.

Create Plot Spanning Multiple Rows or Columns

To create a plot that spans multiple rows or columns, specify the span argument when you call nexttile . For example, create a 2-by-2 layout. Plot into the first two tiles. Then create a plot that spans one row and two columns.

Modify Axes Appearance

Modify the axes appearance by setting properties on each of the axes objects. You can get the axes object by calling the nexttile function with an output argument. You also can specify the axes object as the first input argument to a graphics function to ensure that the function targets the correct axes.

For example, create two plots and assign the axes objects to the variables ax1 and ax2 . Change the axes font size and x -axis color for the first plot. Add grid lines to the second plot.

Control Spacing Around the Tiles

You can control the spacing around the tiles in a layout by specifying the Padding and TileSpacing properties. For example, display four plots in a 2-by-2 layout.

Reduce the spacing around the perimeter of the layout and around each tile by setting the Padding and TileSpacing properties to 'compact' .

Display Shared Title and Axis Labels

You can display a shared title and shared axis labels in a layout. Create a 2-by-1 layout t . Then display a line plot and a stem plot. Synchronize the x -axis limits by calling the linkaxes function.

Add a shared title and shared axis labels by passing t to the title , xlabel , and ylabel functions. Move the plots closer together by removing the x -axis tick labels from the top plot and setting the TileSpacing property of t to 'compact' .


Poglej si posnetek: GeoServer Web GIS: Web Map Service WMS Publishing with Shapefile EN (September 2021).