NO310323B1 - Innlegging og lastbalansering av seismiske data for prosessering på en flerprosessordatamaskin med inngangs- ogoperatornoder - Google Patents
Innlegging og lastbalansering av seismiske data for prosessering på en flerprosessordatamaskin med inngangs- ogoperatornoder Download PDFInfo
- Publication number
- NO310323B1 NO310323B1 NO19962226A NO962226A NO310323B1 NO 310323 B1 NO310323 B1 NO 310323B1 NO 19962226 A NO19962226 A NO 19962226A NO 962226 A NO962226 A NO 962226A NO 310323 B1 NO310323 B1 NO 310323B1
- Authority
- NO
- Norway
- Prior art keywords
- data
- nodes
- operator
- seismic
- coverage
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims description 76
- 238000000034 method Methods 0.000 claims description 79
- 230000015654 memory Effects 0.000 claims description 35
- 230000005012 migration Effects 0.000 claims description 31
- 238000013508 migration Methods 0.000 claims description 30
- 230000008569 process Effects 0.000 claims description 22
- 239000011159 matrix material Substances 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 description 12
- 230000008520 organization Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000002592 echocardiography Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 239000004744 fabric Substances 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005755 formation reaction Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 239000004215 Carbon black (E152) Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000010304 firing Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 229930195733 hydrocarbon Natural products 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000364021 Tulsa Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000007598 dipping method Methods 0.000 description 1
- 238000005553 drilling Methods 0.000 description 1
- 210000001357 hemopoietic progenitor cell Anatomy 0.000 description 1
- 150000002430 hydrocarbons Chemical class 0.000 description 1
- 125000001183 hydrocarbyl group Chemical group 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000001167 microscope projection photolithography Methods 0.000 description 1
- 239000003129 oil well Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000009304 pastoral farming Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- 239000003643 water by type Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01V—GEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS
- G01V1/00—Seismology; Seismic or acoustic prospecting or detecting
- G01V1/28—Processing seismic data, e.g. for interpretation or for event detection
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01V—GEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS
- G01V2210/00—Details of seismic processing or analysis
- G01V2210/50—Corrections or adjustments related to wave propagation
- G01V2210/51—Migration
Landscapes
- Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Geology (AREA)
- Environmental & Geological Engineering (AREA)
- Acoustics & Sound (AREA)
- General Life Sciences & Earth Sciences (AREA)
- General Physics & Mathematics (AREA)
- Geophysics (AREA)
- Geophysics And Detection Of Objects (AREA)
- Multi Processors (AREA)
- Photoreceptors In Electrophotography (AREA)
- Image Processing (AREA)
- Input From Keyboards Or The Like (AREA)
Description
Oppfinnelsen angår prosessering av seismiske data på flerprosessordatamaskiner. Spesielt angår den foreliggende oppfinnelsen en fremgangsmåte for å legge inn seismiske prestakkede data for prosessering på en flerprosessordatamaskin. En foretrukket utførelse av den foreliggende oppfinnelse angår en fremgangsmåte til å balansere den beregnede lasten til en seismisk migrasjonsprosessering av Kirchhoff-typen over multiple prosessorer på multiprosessordatamaskin.
Seismisk Innsamling og Prosessering
Jordens undergrunn kan avbildes av en seismisk undersøkelse, og følgelig er seismisk datainnsamling og -behandling nøkkelkomponenter i geofysiske undersøkelser. I en seismisk undersøkelse genereres elastiske akustiske bølger langs kilder ved jorden overflate og bølgene stråler inn i jordens undergrunn. For land-seismiske undersøkelser er den vanlige kilde dynamitt eller en seismisk vibrator, mens kilden for en marin seismisk undersøkelse typisk er en luftkanongruppe.
Etterhvert som bølgene stråler ned gjennom jordens undergrunn, reflekteres de og forplanter seg oppad mot overflaten hver gang undergrunnens medium forandrer seg. De oppadgående refleksjoner detekteres av et antall mottakere og de reflekterte data registreres og prosesseres for å avbilde undergrunnen. Tolkningen av disse akustiske bildene av undergrunnsformasjonen fører til en strukturell beskrivelse av undergrunnens geologiske trykk, så som forkastninger, saltlommer, antiklinaler eller andre trykk som er indikative for hydrokarbonfeller.
Selv om todimensjonale (2D) seismiske undersøkelser er blitt utført siden 1920-årene, er tredimensjonale (3D) seismiske undersøkelser først nylig kommet i vanlig bruk. 3D-undersøkelser gjengir mer nøyaktig undergrunnsposisjonene til hydrokarbonfellene, men er kostbare og tidkrevende med hensyn til prosessering. For et offshore 3D-datasett som dekker et areal på 20 x 20 km, koster det ca 3 millioner $ (1991 $) å innsamle dataene, mens det går ytterligere 1 million $ for dataprosessering for å omforme dataene til brukbare avbildninger. Kostnaden til en slik seismisk undersøkelse er betydelig mindre enn kostnaden for å drille en offshore-oljebrønn, ofte er 3D-seismiske undersøkelser verd investeringen.
En vanlig type seismisk undersøkelse en marin undersøkelse utført av båter i offshorefarvann. For å registrere seismiske data, tauer en båt luftkanoner (seismiske kilder) nær sin akterende og en opp til 5 km lang "streamer" som inneholder hydrofoner (seismiske mottakere) langs sin lengde. Etterhvert som båten seiler fremad, avfyrer den en kilde og mottar en serie av ekkoer i hver seismisk mottaker. For hvert par kilde/mottaker, dannes en seismisk prestakktrase. Hver trase registrerer lydbølger som reflekteres fra brå akustiske impedansforandringer i berggrunnen under havbunnen. I en tittelseksjon i traseregistreringen registreres også i en forstakkstraseinformasjon om lokaliseringen av kilden og mottakeren. Se K.M.Barry, D.A.Cavers og C.W.Kneale 1975."Recommended standards for digital tape formats", Geophysicists, 40, 344-352, gjenopptrykket i "Digital Tape Standards, Society of Exploration Geophysicists", 1980. Prestakktraser er ikke forbundet med noe bestemt område av undersøkelsen. Hvert som forekommer i en prestakktrase er forårsaket av en reflektor som ligger et eller annet sted langs og utgjør en tangent til en elliptisk bane hvis brennpunktet er den seismiske kilde og mottakeren.
Den romlige relasjon mellom kilder og mottaker i et landseismisk innsamlingsscenario skiller seg fra det som er beskrevet ovenfor, men den foreliggende oppfinnelse er imidlertid upåvirket av dette.
En seismisk undersøkelse utføres over et begrenset område av jorden. Dette området er generelt ikke nødvendigvis nøyaktig rektangulært. Undersøkelsesområdet deles i en gruppe av binger (eng.: bins). "Binging" (eng.: "binning") er tilordningen av traser til en undersøkelsesgruppe, vanligvis et rektangel på 12.5 x 25 meter. En hvilken som helst binge er lokalisert ved sine kartesiske koordinater i denne gruppen (det vil si av dens rad-offisielle nummer). Den endelige utgang på den seismiske undersøkelse er data som viser stedet og styrken av de seismiske reflektorer i hver binge som en funksjon av dybde og tid. Denne informasjonen kan ikke utledes direkte, men må i stedet beregnes ved å benytte en rekke databehandlingstrinn på de registrerte data.
Selv om marine 3D-undersøkelser varierer sterkt i størrelse (1000 til 100 000 km<2>), kan en typisk marin undersøkelse gi over 40 000 datainnsamlingsbånd. Data innsamles med en betydelig hastighet på omtrent 1 500 000 datasampler hvert 10 sek. En vesentlig mengde tid og penger forbrukes på å behandle denne enorme datamengde. Resultatet av den seismiske undersøkelse er således en enorm mengde rådata som er indikativ for reflekterte signaler som er en funksjon av gangtid, forplantning og refleksjonseffekter. Målet er å fremlegge de reflekterte amplituder som en funksjon av sideveisposisjon og dybde.
En typisk marinseismisk undersøkelse gjennomgår tre distinkte sekvensielle trinn, datainnsamling, databehandling og datatolkning. Databehandlingen er overlegent den mest tidkrevende prosess av de tre. Innsamlingstiden for en middels til stor 3D-marinseismisk undersøkelse er omtrent to måneder. I tillegg til seismiske data, registreres også formasjon for den nøyaktig posisjonering av kilder og mottakere. De resulterende digitale data må gjøres egnet for tolkningsformål, og behandling av dataene i et behandlingssenter på land. Behandlingssekvensen kan deles i de fem følgende behandlingstrinn:
1. Kvalitetskontroll, filtrering og dekonvolusjon. Denne behandlingen benyttes på trasebasis til å filtrere støy, skjerpe den registrerte respons, undertrykke multiple ekkoer og generelt forbedre signal/støy forholdet. De fleste av disse signalbehandlingoperasjoner kan vektoriseres i sterk grad. 2. Hastighetsanalyser for migrasjon. Denne behandlingen estimerer hastigheten til de underjordiske formasjoner fra de registrerte data ved å modellere forplantningen av akustiske bølger i estimerte hastigheter og sjekke for signalkoherens i de innsamlede data. Den er lik migrasjon, men benyttes på en liten seksjon av datatemingen. 3. 3D-dip målt-korreksjon og stakking. Dette behandlingstrinnet, generelt den mest inn/ut-intensive del av prosesseringen, (i) summerer sammen flere traser for å eliminere redundans og øke signal/støyforholdet, (ii) korrigerer for tidsforsinkelser som forekommer når det reflekterte signal registreres av suksessive hydrofoner som er plassert med økende avstand bort fra energikilden og (iii) posisjonerer og orienterer de stakkede dataer man får med navigasjons informasjonen. Etter dette behandlingstrinn blir dataene betegnet som stakkede data. Dette trinnet består normalt av en reduksjon i størrelsesorden 100 til 1 i datavolumet. 4. Migrasjon. Dette behandlingstrinnet som beregningsmessig er det mest intensive, relokaliserer posisjonen av de reflekterte strata, som registreres i tid, til deres korrekte posisjon i dybde. 5. Forbedring og filtrering. Detter behandlingstrinn benyttes til å forbedre de migrerte data ved hjelp av digitale filtermetoder.
Stakkeprosessen (trinn 3) reduserer datamengden til hva som essensielt er en tredimensjonal matrise av tall (det vil si en dataterning) som representerer amplituder for reflekterte seismiske bølger registrert over et tidsrom (vanligvis 8 sek). Slike dataterninger kan være store, for eksempel frembygger en middels stor 3D undersøkelse terninger så store som 1000 x 1000 x 2000 flytkommatall.
Den stakkede dataterning representerer en overflateregistrering av akustiske ekko som er returnert fra jordens indre og er ikke vanligvis direkte tolkbar. Migrasjonen (eller den akustiske avbildningsprosess, trinn 4) benyttes til å konvertere de stakkede data til et bilde eller kart som deretter kan sees som et sant dybdekart skåret ut av undersøkelsesområdet.
Således er migrasjon en av de mest kritiske og mest tidkrevende komponenter i den seismiske behandling. Generelt omformer migrasjon de seismiske data registrert som en funksjon av tid til data posisjonert som en funksjon av dybde, med bruk av forhåndskjennskap til forplantningshastigheter i undergrunnen. Spesielt flytter migrasjon fallende reflektorer tilbake til deres sanne undergrunnsposisjon. Migrasjon blir typisk utført på seismiske poststakkdata for å redusere mengden av behandlingstid, men selv da tar det uker av vanlige superdatamaskin tid for selv middels store seismiske poststakkdataterninger.
En rekke typer stakke-migrasjonsprosesser er velkjent. Se, O.Yilmaz, 1987, "Seismic Data Processing", Tulsa, Oklahoma, Society of Exploration Geophysicists. Vanligvis er poststakktraser assosiert med hver binge. Det er imidlertid også mulig å danne multiple poststakktraser per binge. For eksempel kan hver slik trase innehold bidrag fra prestakktraser hvis kilde-mottakerseparasjon faller innenfor et bestemt område. (I dette tilfelle synes bingen å inneholde et felles midtpunktsamling).
Stakkeprogrammer frembringer poststakkdata fra prestakkdata ved enkel manipulering av prestakkdata. Generelt omformer et stakkeprogram hver prestakktrase nøyaktig bare en gang. Migrasjonsprogrammer danner poststakkdata fra prestakkdata ved mer komplisert, bøyningsmessig manipulering av de samme data. Migrasjonsprogrammer omformer hver prestakktrase et stort antall ganger og krever tilsvarende mer beregninger enn enklere stakkeprogrammer. Multiple prestakktraser omformes av deres sammen overlagres for å danne en eller flere poststakktraser assosiert med en binge.
Et slikt (delvis) migrasjonsprogram er "3D Dip Moveout" (DMO) som benytter Kirchhoff-metdoen. Se U.S. PsNo. 5,198,979 Moorhead et al. Se også S. Deregowski og F. Rocca, 1981, "Geometrical optics and wave theory for constant offset section in layered media". Geophysical Prospecting, 29, 374-387. DMO frembringer et poststakkdatasett som kan gis til et annet (fullstendig) migrasjonsprogram. Ved bruk av Kirchhoff-metoden for å implementere 3D Dip Moveout ("DMO") omformer et program en prestakktrase en gang for hver binge som legger en linje, trukket mellom den seismiske kilde og mottakeren. Denne linjen betegnet som trasens "dekning". Hver omformet prestakktrase tillegges, sampel for sampel, for trinnvis å danne en eller flere av poststakktrasene i hver binge. Dette signal/støyforhold til hver poststakktrase øker som kvadratroten av antallet omformede prestakktraser addert sammen for å danne den.
Selv om den er effektiv, er Kirchhoff-metoden fortsatt beregningsmessig kostbar. Omtrent 30 aritmetiske operasjoner (flytkommaoperasjoner eller FLOPs) er nødvendig for hvert sampel av hver omformede trase. Gitt en skudd/mottaker-separasjon på 3 km, en bingebredde på 12,5 m, og 8 sek data i hver trase innsamlet med et 4ms/sampel, impliserer dette et gjennomsnitt på omtrent 10 millioner FLOP per trase. En typisk marin undersøkelse på 20 km<2> med bruk av 12,5 m brede, 25 m høye binger inneholder kanskje 80 millioner prestakktraser. DMO-prosessen som benytter Kirchhoff-metoden forbruker således tilnærmet 800 billioner FLOP. Denne beregningskostnad motiverer implementeringen av migrasjonsprogrammer så som DMO hvor en eller annen form av superdatamaskin med høy ytelse, så som en massiv parallellprosessor (MPP). Se Thinking Machines Corporation, 1993, "The Connection Machine CM-5 Technical Summary". En slik prosessor er en attraktiv plattform for å eksekvere migrasjonsprogram fordi dens ytelse øker etter hvert som dens størrelse øker; således kan systemet vokse trinnvis etter hvert som beregningsbehovet til behandlingsorganisasjonen øker. Se også W. Daniel Hillis og Lewis W. Tucker, The CM-5 Connection Machine: A Scalable Supercomputer, Communications of the ACM, november 1993, Vol. 36, No. 11, sidene 31-40.
Parallell beregnin<g>
Figur 1 viser et eksempel på en multiprosessor-parallell datamaskin, spesifikt en massivt parallellprosessor (MPP) så som CM-5. På figur 1 MPP 10 av 3 hovedkomponenter: (i) et platelagersystem 12 hvis kapasitet og dataoverføringsrate kan skaleres opp avhengig av kravene til lagring og datagjennomløp, (ii) datakontrollkommunikasjonsnettverk 14 som binder prosessorene og platelagersystemet sammen, (iii) et sett av behandlingsnoder 16 (se fig. 2), som
hver inneholder minst en prosessor 18 et minne 20 og et grensesnitt 22 til data- og kontrollnettverket 14. Kapasiteten til datanettverket 14 ( mengden av data som den kan transportere i et gitt tidspunkt) skalerer etter hvert som antallet noder 16 øker. Størrelsen på sett av behandlingsnoder 16 kan skaleres opp etter som beregningsbehovene krever det. På en MPP, kan prosessornoder 16 eksekvere uavhengig av andre, imidlertid skaffer kontrolldelen av data-kontrollkommunikasjonsnettverket 14 et middel hvorved alle nodene 16 kan synkronisere sine aktiviteter.
En MPP kan bedre ytelsen til beregnings-intensivering-migrasjonsprogrammer fordi den gjør det mulig å dele arbeidet som skal gjøres og tilordne en del av det til hver prosessornode 16. For at denne fremgangsmåten skal skaleres etter hvert som størrelsen på MPP 10 skalerer, må arbeidsdelingene være sant uavhengige av hverandre slik at ikke noen av prosessorene deler arbeid. Dette er et uttrykk for Amdahls lov som sier at den maksimale hastighetsøkning ved parallellisering er den inverse til brøkdelen av den tid en applikasjon bruker på å utføre en seriell beregning. Se G. Fox et al., 1988, "Solving Problems on Concurrent Processors", Vol. 1, side 57.
For eksempel må i seismisk migrasjonsbehandling hver binge være tilordnet en og bare en prosessor til en hver tid. Ethvert forsøk på å tilordne den samme binge til mer enn en enkelt prosessor ville kreve en serialiserende synkronisering for å sikre korrekte resultater. Fordi DMO flytter en stor datamengde, er midlene hvor data flyttes mellom platelagersystemet 12 og minne 20 i prosesseringsnodene 16 særlig viktige. For å unngå implikasjonene av Amdahls lov, må dataene flyttes så effektivt som mulig. En type platelagersystem som tilfredsstiller dette kravet er et RAID-platesystem. Se S.J.Lo Verso, M. Isman, A. Nanopoulos, W. Nesheim, E.D.Milne, and R. Wheeler, SFS: "A parallel file system for the CM-5". Proceedings of the 1993 Usenix Conference.
En annen implikasjon av Amdahls lov er at arbeidsdelingen må utføres slik at alle nodene må utføre de samme beregningsmengder. Dette siste kravet er kalt lastbalansering.
En likefrem partisjonering er av en som tilordner de ikke-overlappende rektangulære områder av bingeprosessorer. Dette tilfredsstiller uavhengighetskravet fordi hver binge er uavhengig av de andre binger. Imidlertid vil mange, men ikke alle binger dekkes av en felles prestakktrase. Således må det være mulig effektivt å legge inn den samme prestakktrase, som ofte lagres på platelagersystemet 12, til multiple prosessorer. Hver prosessor vil deretter omforme trasen noe forskjellig fra de andre prosessorer og addere den til poststakktrasen som er under utvikling og assosiert med den tilordnede binge.
To innlysende strategier for å legge inn traser foreligger. Den første legger inn den samme prestakktrasen til alle prosesseringsnoder 16. Generelt er dette en ineffektiv bruk av en MPP. Ofte er mange noder som mottar en prestakktrase tilordnet binger utenfor trasens dekning. Hvis en behandlingsnode 16 skulle motta en slik trase, ville den ganske enkelt ignorere den og vente til den mottok den neste trase. Resultatet er ineffektiv bruk av prosessorene til en MPP, da mange prosessorer kan kaste bort tid med å avvise traser.
En annen strategi er å bestemme hvilke traser som dekker hvilke binger og legge inn fra traselagersystemet traser til forskjellig prosesseringsnoder 16, slik at bare traser som dekker en til prosesseringsnoden tilordnet binge, sendes til denne prosessor. Selv om dette er effektivt sett fra prosessorbruk-synspunkt, kan det være ineffektivt sett fra platebruks-synspunkt, fordi det frembringer en tvist når forskjellige prosessorer forsøker å lese fra forskjellige deler på platelagersystemet samtidig. Hvis platelagersystemet implementeres som en enkelt logisk disk, som i RAID-platesystemet, vil forskjellige prosesseringsnoder 16 kjempe om kontroll av platesystemet 12 (dvs for kontroll av plasseringen av platehodet). Dette resulterer i forsinkelser ved flytting av data fra platesystemet 12 til prosessorminnet 20.
Hvis derimot platesystemet 12 implementeres som multiple plater, så behøver det ikke å bli noen strid hvis hver prosesseringsnode 12 leser fra en separat plate. Imidlertid skalerer ikke denne plate arkitekturen godt. Generelt implementeres dette som en plate per prosessor med rask aksess til platen fra prosessoren, til platen er forbundet og vesendig lavere aksess til platen fra andre prosessorer. Se Kendal Square Reseach, 1993, "Technical Summary". I tillegg foreligger strid om potensialet til en enkelt plate, hvis to eller flere prosessorer prøver å lese fra samme plate.
Metoder er under utvikling for å benytte parallellberegning på seismiske prosesseringsproblemer. Se U.S.Patent No. 5,198,979 Moorhead et al. and U.S.
Patent no. 5,349,527.
Kirchhoff DMO på en multiprosessor
Et skalerbart tiltak for å implementere DMO på en flerprosessordatamaskin er (i) å laste et sett prestakktraser fra platelagersystemet 12 inn i prosesseringsnodene 16, (ii) å bestemme hvilke binger i undersøkelses område som er dekket av unionen av alle de løsnede traser, (iii) å tilordne til hver node 16 et parti av undersøkelsesområdet dekket av de lastede traser, (iv) å laste fra platesystemet 12 til de riktige noder 16 poststakktraser fra de dekkede binger, (v) å benytte DMO-operatoren på hver lastet prestakktrase i hver prosessor for oppdaterte poststakktrasene, og (vi) å skrive ut de oppdaterte poststakktraser fra nodene 16 til platesystemet 12.
Tilordningen av deler av partier av undersøkelsesområdet til nodene 16 må være ikke-overlappende. Dette tilfredsstiller uavhengighetskravet for skalerbarhet på en MPP fordi hver binge er uavhengig av de andre binger, dette tillater også en IO-strategi som gjør at poststakktraser kan leses fra og skrives til platelagersystemet 12 i parallell. Dette er viktig fordi hver poststakktrase typisk vil leses inn, oppdateres og skrives ut mange ganger. Således kan organisasjonen og filen på platelagersystemet som inneholder poststakkdata, og strategien med hvilken dataene leses og skrives i sterkere grad påvirke effektiviteten av DMO-prosessen.
Imidlertid garanterer ikke en enkel ikke-overlappende partisjonering av binger i seg selv god ytelse. Hvis for eksempel hver node a priori er tilordnet samme antall binger for prosessering, vil denne fremgangsmåten generelt ikke oppnå en god lastebalansering. Dette er spesielt viktig når marinseismiske data behandles, på grunn av geometrien som dataene blir innsamlet med.
Fig. 3 viser en typisk konfigurasjon av seismiske kilder og mottakere i en
marinseismisk undersøkelse. Seismisk innsamlingsfartøy 30 seiler fremad og tauer en seismisk kabel 32 som inneholder multiple seismiske mottakere 36 plassert ved forskjellige punkter langs kabelen. Nær hekken av fartøyet er det et par luftkanoner 34, som er seismiske kilder. Ved avfyringen av en luftkanon registreres en samling
av forsøkstraser, en trase fra hver mottaker 36. For hver trase og hver binge 38 ved dekningen av trasen, omformer DMO-operator en trasen og adderer den til poststakktrasen assosiert med bingen. Da den seismiske kabelen 32 følger en nesten rett linje bak fartøyet 30 parallell til retningen som fartøyet seiler, vil bingene som er nærmest luftkanonene 34 (kalt "near offsef-binger) og under streamerkabelen, være i dekningen til flere traser enn bingen nærmest den siste mottaker 36 i kabelen (kalt "far offsef-binger).
Forholdet mellom traser som dekker den såkalte "near offset"-binge og de som dekker en "far offset"-binge vil være lik antallet av entydige lokaliserte mottakere 36 på den seismiske kabel. Typisk er det mellom 120 og 240 mottakere på en kabel. Dette betyr at en prosessornode 16 tilordnet for å behandle en "near offset" - binge vil ha kanskje 240 ganger mer arbeid å gjøre enn en node som er tilordnet en "far offset"- binge.
Den ovenstående omtaler betrakter behandlingen av en enkel skuddregistrering (sett av traser registrert av alle mottakerne på basis av et enkelt luftkanonskudd). Lastbalanseproblemer blir ytterliggående skjerpet når flere skudd behandles samtidig, slik det typisk gjøres når DMO eksekveres på en flerprosessordatamaskin. For å se hvorfor dette er tilfelle skal det betraktes at innsamlingsfartøyet seiler fremad i en kort avstanden (typisk 25 m) mellom skuddene. Følgelig er antallet traser som dekker bingen nær "near offset"- bingen i det første skudd i et sett av skudd multiplisert grovt av størrelsen i dette settet, men imidlertid er dekningen av den først "far offset"- binge uforandret, da mottakeren ved enden av den seismiske kabel nå blir tauet forbi bingen.
En tilsvarende lastubalanse vil foreligge når landseismiske data behandles og typisk sorteres i samlinger av prestakktraser assosiert med hvert mottakerpunkt i undersøkelsen. De tilsvarende skuddpunkter er lokalisert i alle retninger med forskjellige avstander fra mottakeren, og forårsaker at trasedekningen av bingen fra mottaker er høyere en de lenger bort fra mottakeren. Hvis sett av traser fra multiple mottakere behandles samtidig og hvis mottakernes sett alle er lokalisert nær hverandre, vil graden av lastbalanseproblemer øke, slik det gjør når multiple marine skuddsamlinger behandles.
I denne søknaden inkorporeres alle patenter ved henvisning til dem, og alle andre henvisninger er inkorporert som generelle.
Generelt sagt leverer fremgangsmåten i henhold til den foreliggende oppfinnelse seismiske prestakkdata til prosesseringsnoden i en flerprosessordatamaskin, og øker inngangseffektiviteten og unngår strid mellom nodene. Konseptuelt er prosesseringsnodene delt i inngangs- og operatornoder. De seismiske prestakkdata gis inn til inngangsnodene, hvor dataene undersøkes for å bestemme dekningen - foretrukket romlig dekning - for dataene i hver inngangsnode. Dernest kringkaster hver inngangsnode til operatornodene en beskrivelse av sin dekning. Hver operatornode blir deretter tilordnet et område innenfor dekningen for behandling. I den foretrukkede utførelse er dekningen et avgrenset område av jorden delt i binger, og et areal er en eller flere binger. Etter arealtilordning anmoder hver node om å motta seismiske prestakkdata for sitt tilordnede område fra inngangsnodene som er i besittelse av data.
I en foretrukket form tillater den foreliggende oppfinnelse at beregningsbelastningen til en seismisk prosess, så som DMO-prosessering, deles ulikt og dynamisk over multiple prosessorer i en flerprosessordatamaskin for å oppnå god lastbalansering. Oppfinnelsen skaffer en fremgangsmåte til å bestemme hvor mange binger som skal tilordnes til hver prosesseringsnode i en flerprosessordatamaskin for å behandle en gitt samling av prestakktrasedata, samtidig som det oppnås god lastbalansering. Oppfinnelsen skaffer også en fremgangsmåte for effektivt å lese forskjellige mengder poststakkdata fra et platelagersystem i en flerprosessordatamaskin innen de forskjellige prosesseringsnoder innen flerprosessordatamaskin, og benytte en seismisk operator på data og deretter skrive de oppdaterte poststakkdata tilbake til platelagersystemet.
I seismiske databehandling er det en hovedoppgave å forbedre signalet på bekostning av støy og å forskyve de akustiske reflektorer til deres sanne geologiske posisjon. "Stakking" er en nøkkel til vesentlig signalforbedringsteknikk, og utgjør midlingen av mange seismiske traser som reflekteres fra felles punkter i undergrunnen. Fordi hver trase er antatt å inneholde samme signal, men forskjellig slumpmessig støy, forbedrer midling signalet samtidig som det reduserer støyen. Etterhvert som avstanden mellom kilde/mottaker øker (offset), øker også den toveis refleksjonsgangtiden, fordi lyden må gå en lengre vei. "Normal moveout"-korreksjon omformer hver trase til null offset for marin seismisk innsamling og må også ta hensyn til initialhastighet og seismisk kabelposisjon. "Dip moveout" hos (DMO) migrerer delvis fallende elementer etter normal moveout-korreksjon for å fjerne virkningen forårsaket av kilde-mottaker-separasjon. Det fulle migrasjonbehandlingstrinn som følger, forskyver ytterligere fallende reflektorer nærmere deres sanne fysiske sted.
En foretrukket utførelse av oppfinnelsen skaffer en fremgangsmåte for effektivt å legge inn seismiske forsøksdata for prestakkmigrasjon av Kirchhoff-typen og DMO-programmer på MPP med forskjellige antall plater og prosessorer. Den foretrukkede metode partisjonerer MPP i et sett av "operator"-noder og et sett "inngangs"-noder. Operatornoder tilordnes ikke-overlappende undermengder av binger i en seismisk undersøkelse og benytter en migrasjonsoperator for multiple prestakktraser for trinnvis å danne poststakktraser assosiert med hver tilordnet binge.
I en foretrukket utførelse av oppfinnelsen lagres poststakkdata assosiert med bingen i seismiske undersøkelser i en fil på et skalerbart platelagersystem, så som RAID subsystemet. Denne typen system kan skaffe store datamengder til operatornodene, idet dataene består av en eller flere poststakktraser per binge. Typisk vil en gitt binge leses fra platen, oppdateres og skrives ut til platen flere ganger under behandlingen av et prestakkdatasett. For å oppnå høy ytelse, blir poststakkdataene foretrukket anordnet på fil slik at lese-og skriveanordningen beskriver sammenhengende blokker av fildata. Bingene tilordnet den første operatornode må umiddelbart gå forut for dem som er tilordnet en andre operatornode, og bingene tilordnet en andre operatornode må umiddelbart gå forut for dem som er tilordnet den tredje osv. Dette garanterer at alle poststakkbinger som leses eller skrives danner en sammenhengende undermengde av filen.
I den foretrukkede utførelse av oppfinnelsen leser inngangsnoder prestakktrasedata fra et skalerbart platelagersystem, så som et RAID subsystem. Denne typen system kan effektivt levere store datamengder til inngangsnodene. Dataene består av store sammenhengende blokker av prestakktraser og er likt delt i et antall mindre blokker, en liten blokk til minnet i hver inngangsnode. Alternativt kan prestakkdataene leses inn i MPP med bruk av en høyhastighetsforbindelse til et utvendig datanettverk, så som et HiPPI-nettverk. Det eneste krav er at hver sammenhengende blokk av data lest inn i MPP er fordelt over inngangsnodens minner.
Hver gang en blokk av prestakkdata leses inn i inngangsnodene, bestemmer inngangsnodene unionen av den romlige dekning for hver av prestakktrasene de inneholder. Når et 3D-DMO utføres, er en individuell trase strekning en linje mellom kilden og mottakeren. Når "saddle"-DMO utføres, er en individuell trases dekning en ellipse, og en viss akse er linjen mellom kilden og mottakeren. Se Meinardus og Schleicher, "3-D time-variant dip moveout by the f-k method", i Geophysics, Vol. 58 No. 7, juli,1993. Når et 3D i Kirchhoff-dybdemigrasjon utføres, er dekningen potensielt hele undersøkelsen.
Unionen av romlige dekninger av trasene i hver inngangsnode er en mer eller mindre uregelmessig formet polygon, konstruert av binger. Straks inngangsnodene har beregnet denne unionen, kringkaster hver inngangsnode til alle andre noder en kompakt beskrivelse av denne dekning. Hver node som mottar denne melding, forener beskrivelsen til en initielt tom dekningsbeskrivelse. Etter at alle noder har kringkastet en beskrivelse av dekningen av trasene den rommer, og alle slike meldinger er blitt mottatt av alle noder, besitter alle noder beskrivelse av en union av dekningen av traser i alle inngangsnoder. Denne dekningsbeskrivelsen refereres til som den "sammensmeltede" beskrivelse.
Alle operatornoder beholder den sammensmeltede dekningsbeskrivelse og de individuelle dekningsbeskrivelser fra hver av inngangsnode. Den sammensmeltede beskrivelse skaffer operatornodene et middel til å bestemme hvilke poststakkbinger som oppdateres av trasene som er rommet i inngangsnodens minner. Som tidligere angitt må inngangsnodene flytte sammenhengende sett av binger mellom sett av poststakkdatafilene og sine minner. Den enkleste måte for å oppnå dette, er å organisere poststakkdatafilen som en matrise hvis form tilsvarer den for den seismiske undersøkelse. Dersom dette gjøres, og da gitt en sammensmeltet beskrivelse av binger som skal oppdateres, velger operatornodene ganske enkelt multipler av sammenhengende undermengder av binger fra undersøkelsen. Hver sammenhengende undermengde av binger svarer derfor til en sammenhengende undermengde av filen.
Operatornoder tilordner seg selv til binger fra hver sammenhengende undermengde av binger i henhold til en enhetlig desisjonsprosedyre. Hvis for eksempel en sammenhengende undermengde består av et rektangel med 128 søyler og 8 rader, og det er 32 operatornoder, så kan hver operatornode tilordne seg selv til et rektangel med 4 søyler og 8 rader. Den første operatornoden tilordner seg selv det 4x8 rektangelet som er lengst til venstre, de neste operator node tilordner seg selv til det andre 4x8 rektangelet osv. Hvis det er flere operatornoder enn det er rektangler av binger, vil noen operatornoder være utilegnet og ikke foreta noen migrasjonsbehandling. Hvis det er færre noder enn rektangler har binger, så vil de resterende rektangler av binger behandles i en senere omgang av tilordninger av operatorer til binger.
Hver gang en operator tilordner seg selv til en mengde av binger, laster den inn sitt minne poststakktrasene assosiert med bingene fra poststakkdatafilen. Den innhenter deretter en mengde poststakktraser fra en eller flere inngangsnoder, benytter DMO-operatoren på dem og oppdaterer poststakktrasene i sitt minne. Hvis det er flere poststakktraser som skal innhentes, gjentar operatorene prosessen for alle poststakkstrasene som dekker operatorens bingetilordninger blitt behandlet, skriver operatoren sin oppdaterte poststakktrase tilbake til poststakkdatafilen.
De individuelle dekningsbeskrivelser kringkastet av inngangsnodene skaffer middel med hvilket operatornodene bestemmer fra hvilke inngangsnoder prestakktraser skal innhentes. En operatornode spør om en dekningsbeskrivelse for å oppdage om et bestemt inngangsnode rommer prestakktraser som dekker operatorens bingetilordning. Hvis denne inngangsnoden gjør det, så anmoder operatoren om traser fra den.
De enkleste beskrivelser inneholder bare tilstrekkelig informasjon til at en operator kan bestemme hvorvidt det er traser som dekker en binge. I dette tilfelle kan ikke operatoren bestemme hvor mange traser som dekker bingen a priori. Hver inngangsnode holder rede på hvilke traser som er blitt sendt til hvilke operatornoder, slik at hver node mottar en viss trase bare en gang. I traseanmodningen til inngangsnoden leverer operatoren et maksimalt antall traser som den er villig til å akseptere. Hvis inngangsnoden returnerer færre en dette antallet traser, konkluderer operatoren med at den har innhentet alle relevante traser fra operatoren, og fortsetter å anmode om traser fra neste inngangsnode. Når alle inngangsnoder er blitt etterspurt på denne måte, er operatoren ferdig med alle prestakktraser i sin nåværende bingetilordning.
En mer detaljert dekningsbeskrivelse innbefatter antall traser som dekker hver binge. Dette gjør at en operator kan vite a priori hvor mange traser den vil motta fra en inngangsnode når den behandler sett av binger som til den er tilordnet til. Fordelen med denne metoden er at den tillater operatorer å bestemme bingebehandlingstilordninger som omtrent utjevner mengden av arbeid hver utfører, basert på antallet traser som dekker hver binge. Operatornoder som vanligvis ville blitt tilordnet til lavdekningsområde i undersøkelsen, vanligvis ved kanten av undersøkelsen, kan således tilordne seg selv til flere binger . Operatornoder til høye dekningsområder i det indre av en undersøkelse kan tilordne seg selv til færre binger.
For å oppnå god lastbalansering blir hver blokk som de dekkede binger av undersøkelsen deler sammensatt et antall horisontalt tilstøtende bingeområder. Hver underblokk som disse blokkene i sin tur deles i, er derfor også et antall horisontalt sammenhengende bingeområder.
Således vil operatornoder tilordnet et område av undersøkelsen hvor dekningen er lav - for eksempel et område bare dekket av fjernoffsettraser - tilordnes flere bingeområder enn operatornoder tilordnet et område hvor dekningen er høy - for eksempel et område dekket av næroffsettraser. De minste tilordning som inneholder noen binger, er et enkelt bingeområde. Den største tilordningen begrenses bare av mengden av minnet som står til rådighet på en operatornode.
Straks bingeområde-tilordningene er blitt bestemt, laster operatornodene etter
poststakktrasedataene tilsvarende deres tilordnede binger fra poststakkdatafilen inn i sine minner. I den foretrukkede utførelsen av oppfinnelsen befinner datafilen som inneholder poststakktrasen seg i platelagersystemet MPP. For å laste data effektivt,
må det være mulig å laste en enkelt blokk som inneholder poststakktrasedata som behøves av alle operator noder, deltagende i sammenhengende underblokker med potensielt varierende størrelser og å laste hver underblokk inn i den riktige operatornoden.
Dette er mulig hvis dataene i filen er organisert som følger. Undersøkelsesområder er antatt å være et rektangel som inneholder et antall rader og søyler av binger. Område spaltes opp i et antall områder i det hvert mindre område har bredden til undersøkelse, men bare høyden til et tidligere beskrevet bingeområde. Innenfor et mindre område går den første søyle forut for det annen søyle som går forut for den tredje søyle og så videre før bredden av undersøkelsen. Innenfor hver søyle går data i første rad forut for data fra den annen rad som går forut for data fra den tredje rad osv. over høyden av et bingeområde. Dette arrangementet gjør det mulig å lese inn i enhver node en sammenhengende blokk av data dannet fra et hvert sammenhengende bingeområde. Det er således mulig å lese en sammenhengende blokk av bingeområder inn i hvilket som helst antall operatornoder, og deler blokken i sammenhengende underblokker med null eller flere bingeområder.
Straks poststakksdataene er lastet inn i minnene til operatornodene, kan operatornodene innhente prestakkdataene fra inngangsnodene som rommer dem, i samsvar med dekningsbeskrivelsen kringkastet fra hver inngangsnode. En operatornode innhenter prestakktraser fra en inngangsnode som rommer traser som dekker operatornodens tilordnede bingeområder. Mens noen operatornoder blir tilordnet flere bingeområder (og derfor flere binger) enn andre, skal det totale antall traser som behandles av hver operatornode være så jevnt som mulig. Følgelig bør hver operatornode avslutte innhenting av behandling av sine forsøkstraser på samme tid.
Når alle operatornoder således er ferdige, skriver de sin oppdaterte poststakktraseinformasjon tilbake til poststakksdatafilen, og benytter en invers operasjon, igjen i forhold til den tidligere omtalte inverse operasjon, for å lese poststakktrasedataene. Operatornodene tilordner deretter seg selv til den neste sammenhengende blokk av bingeområde innenfor de dekkede binger i undersøkelsen. Når alle slike blokker er blitt behandlet, leses inngangsnodene inn i den neste blokk av prestakkdata, og den tidligere omtalte prosess gjentar seg. Når ingen ubehandlede prestakkdata er igjen, avsluttes DMO-beregningen. Figur 1 viser et blokkdiagram av en abstrakt massiv parallellprosessorarkitektur for å gjennomføre en seismisk prosessering som svarer til fremgangsmåtene ved den foreliggende oppfinnelse. Figur 2 viser et blokkdiagram som gjengir den abstrakte arkitektur for en prosessornode i en MPP, benyttet for å utføre partiell eller full migrasjon i samsvar med fremgangsmåtene i henhold til den foreliggende oppfinnelse.
Figur 3 viser en gjengivelse av en marin seismisk datainnsamling.
Figur 4 viser bingedekning ved "fjern offset"-trasen i undersøkelsen vist på figur 3. Figur 5 viser operasjonen for å beregne unionen av to trasedekningsbeskrivelser. Figur 6 viser en søylegraf som gjengir hvordan trasedekningen for bingeområder varierer over et stort antall søyler for marinseismiske data. Figur 7 viser en søylegraf som gjengir hvordan en enkelt, ikke lastbalanserende tilordning av bingeområde til operatorer for dekningen figur 6 ville føre til et sterkt varierende arbeidsbelastninger for forskjellige operatorer. Figur 8 viser en forenklet gjengivelse av landseismisk datainnsamling, figur 9 viser en graf som beskriver en tilordning av binger til operatornoder i samsvar med fremgangsmåten i henhold til den foreliggende oppfinnelse. Figur 10 viser et blokkdiagram som gjengir den abstrakte massivt parallelle prosessorarkitektur på figur 1 slik den benyttes i henhold til fremgangsmåtene ved den foreliggende oppfinnelse. Figur 11 viser det lineære format av en prestakkdatafil på en blokk av traser benyttet som inngangsdata. Figur 12 viser en tabell som gjengir en kompakt dekningsbeskrivelse, i dette tilfelle i tabellform av kjørelengdekoding svarende til dekningen gjengitt på figur 9. Figur 13 viser en graf av en mulig avbildning av binger tilstede i en poststakkdatafil i samsvar med den foretrukkede utførelse av oppfinnelsen. Figur 14 viser en datastruktur i minnet benyttet til å bestemme trasedekningstellinger per binge i områder i samsvar med fremgangsmåten i henhold til den foreliggende oppfinnelse. Figur 15 viser en skjematisk gjengivelse av en verson av datastruktur 14 kompatibel med fremgangsmåten for data overføring og hvor kontroll-datakommunikasjonsnettverket tillemper MPP i samsvar med fremgangsmåten i den foreliggende oppfinnelse. Figur 16 viser en søylegraf som gjengir hvordan fremgangsmåten i henhold til den foreliggende oppfinnelse sterkt reduserer variasjonen i arbeidsbelastning mellom forskjellige arbeidsoperatornoder for dekningsdataene på figur 6. Figur 17 viser en søylegraf som gir antall søyler tilordnet til hver operatornode som benytter dekningsdata analyse vist på figur 6. Figur 18 viser en datastruktur som gjengir organisasjon av poststakkdatafil i samsvar med fremgangsmåten i henhold til den foreliggende oppfinnelse. Figuren 19 viser et eksempel på et undersøkelsesområde for sammenligning med datastrukturen på figur 18.
I den foretrukkede utførelse av den foreliggende oppfinnelse skaffes fremgangsmåter for å levere prestakkinngangsdata til behandlingsnoder på en massivt parallell prosessor for å utføre seismisk prosessering, så som "3D Dip Moveout" eller "Kirchhoff-migrasjon.
Oversikt MPP
Figur 1 i gjengir en abstrakt MPP arkitektur som er kompatibel med fremgangsmåten i henhold til den foreliggende oppfinnelse. De eksakte detaljer for data-og kontrollkommunikasjonsnettverk er uviktige. I samsvar med fremgangsmåten i henhold til den foreliggende oppfinnelse behøver kommunikasjonsnettverket bare å støtte utvekslingen av vilkårlige meldinger mellom to vilkårlige prosessornoder 16, evnen for hvilken som helst prosessornode 16 til å kringkaste en vilkårlig melding til alle andre noder 16, og evnen for alle noder 16 til å synkronisere aktiviteter når dette er nødvendig. Ved den foretrukkede utførelse av oppfinnelsen skulle datanettverket 14 støtte overføring av minst 5 megabyte data per sekund for hver node 16 MPP 10. For eksempel bør en MPP som inneholder 32 noder støtte minst 160 megabyte/s aggregert datagjennomløp. Figur 2 gjengir en abstrakt MPP-prosesseringsnode 16 kompatibel med fremgangsmåten i henhold til oppfinnelsen. Igjen er de nøyaktige detaljer uviktige. I en foretrukket utførelse av oppfinnelsen bør node 16 inneholde minst 16 megabyte lokal random aksess minne 20 og være i stand til å motta data over grensesnittet 22 til datakommunikasjonsnettverket 14 med en hastighetsrate på minst 5 megabytes/s. CPU 18 kan i realiteten omfatte et antall prosessorer.
Den foretrukkede utførelsen av oppfinnelsen benytter en arkitektur hvis ytelse skalerer seg nær lineært, etter hvert som antallet prosessorer, mengden av minnet 20 på hver node 16, og størrelsen av platelagersystemet 12, økes tilsvarende. Dette krever at gjennomløp av data og kontrollnettverk 14 skal skaleres lineært med antallet prosessorer (antall noder 16 og antall prosessorer som utgjør CPU 18 innenfor en node), da flere prosessorer vil utveksle flere data ved bruk av nettverket 14. Det krever videre at gjennomløpet for platelagersystemet 12 skaleres med antallet prosessorer, da flere prosessorer vil forsøke å lese mer data med den samme dataraten. Implisitt krever dette også at kapasiteten til platelagersystemet 12 skal skaleres med antallet prosessorer.
En platelagersystemarkitektur som oppfyller dette kravet, er en platematrise, ofte betegnet en RAID arkitektur hvor et antall vanligvis billige plater er laget for å fremstå som et enkelt filsystem. Se D.J.Lo Verso, M-Isman, A. Nanopoulos, W.Nesheim, E.D.Milne, and R.Wheeler.SFS:" A parallel file system for the CM-5", I Proceeding of the 1993 Usenix Conference. Bruk av en RAID arkitektur er i seg selv utilstrekkelig til å garantere skalerbarhet. Platelagersystemet må benyttes på en skalerbar måte. Generelt krever dette at både lese- og skriveorganisasjonen på platen må synkroniseres i tid og lokaliseres over plateoverflaten slik at plateoverflaten leses og skrives fra det samme sted på den samme tid.
En slik MPP som tilfredsstiller disse kravene er "Connection Machine modell CM-5", fremstilt av Thinking Machines Corporation i Cambridge, Massachusetts, med bruk av et Datavault eller Scalable Disk Array som et platelagersystem 12.1/O-systemet tillater at enhver gruppe av noder 16 kan lese en blokk av data fra platelagersystemet 12 eller skrive en blokk av data til platelagersystemet 12, forutsatt den begrensning at datablokken representerer en sammenhengende undermengde av en fil. Blokken leses inn i eller skrives fra gruppen av noder. Den første del av blokken leses inn eller skrives fra den første node i gruppen og den annen del av blokken leses inn eller skrives fra den første gruppen, og den annen del av blokken leses inn eller skrives fra den annen node i gruppen (hvis det er en). Hver etterfølgende del av blokken leses inne eller skrives inn fra hver etterfølgende node i gruppen til den siste node i gruppen.
Det skal forstås at andre multiprosessordatamaskinarkitekturer og andre platelagersystemarkitekturer som enten krever eller tillater at en sammenhengende blokk av data kan leses inn i eller skrives fra en gruppe av noder 16 i et flerprosessordatamaskin, også kan benyttes uten å avvike fra rammen av den overliggende oppfinnelse.
Seismisk innsamling av data
Som tidligere bemerket er den iboende fordel ved bruk av en MPP når det utføres seismisk migrasjon, potensialet for signifikant å registrere tidsforbruket som går med til å behandle prestakkdataene. Figur 3 viser et forenklet marinseismisk datainnsamlingsscenario. I den virkelige samtidige praksis kan et seismisk innsamlingsfartøy taue to seismiske kabler 32 som ha opp til 5 km lengde. Typisk arbeider en kilde eller en luftkanongruppe 34 i samband med en seismisk kabel 32 som har inntil 240 mottakere 36 (hydrofoner). I tillegg arbeider undersøkelsesfartøyene ofte i par, i det et fartøy 30 avfyrer seismiske kilder 34 og begge fartøyer registrerer de resterende ekko ved mottakerne 34. Området over hvilket den seismiske undersøkelse utføres, deles i binger som vist på figur 3. Hver trase registrert under en undersøkelse krysser et antall binger 38. Under migrasjon behandles prestakktrasen ved å benytte en matematisk operator en gang for hver binge 38 under trasens "dekning" og lagres med andre traser behandlet i samme binge. For eksempel er dekningen av en trase i 3D-Dip Moveout-programmer en linje mellom den seismiske kilde 34 og mottaker 36, som vist på figur 4. I den foreliggende søknad betyr således begrepet "dekning" identifikasjon av binger som inneholder seismiske data assosiert med en bestemt trase. I praksis kan en slik "fjern offsef-trase krysse 400 slike binger 38, og en gjennomsnittlig trase kan krysse 240 binger. Nåværende seismiske undersøkelser kan inneholde 80 millioner traser eller omtrent 800 gigabyte data; videre øker undersøkelsens størrelse hvert eneste år. Marine prestakkdata blir vanligvis samlet i "felles skuddsamlinger"
(eng.: "common shot gathers") bestående av traser samlet fra hver mottaker på den seismiske kabel fra et enkelt skudd. Figur 5 viser hvordan dekningen fra fjern-offsettrasen til to felles skuddsamlinger fra skudd tatt i rekkefølge kombineres slik at det dannes en arbeidslast-ubalanse. Det første skuddekning 50 (figur 5 øverst) kombinerer med den annen skuddekning 2 (figur 5 i midten) for å danne den kombinerte dekning 54 (figur 5 nederst). I den kombinerte dekning 54, gjengir den mørkere krysskravering 56 de binger som er dekket av fjern-offsettraser fra begge skudd. Fordi arbeidsmengden som skal utføres når en binge behandles vil avhenge av antallet traser hvis dekningen innbefatter bingen, vil prosessorer som er tilordnet bingene med to-trasedekning ha mer arbeid å utføre enn de som er tilordnet til binger med en-trasedekning. Når det betraktes mer enn to skudd samtidig, og når de seismiske kabler inneholder det typiske antallet mottakere benyttet til virkelig marin seismisk innsamling, og når alle trasene registrert fra hver seismisk kabel sees i betraktning, kan lastebalanseproblemet være betydelig, idet noen binger dekkes av mer enn noen få tusen ganger traser som de andre. Figur 6 viser trasedekningen for en linje på 95 bingeområder, idet hvert bingeområde består av fire søyler og åtte rader av binger ( f.eks 32 binger) med bruk av data fra en virkelig marinseismisk undersøkelse. Streameren inneholdt 144 mottakere med maksimum offset (avstand mellom kilde og mottaker) like over 3 km. Dekningsdataene ble generert fra 32 felles skuddsamlinger. Toppdekningsverdien er 3092 traser i et enkelt bingeområde, mens den minste verdi som ikke er null er 2 traser i et enkelt bingeområde. Figur 7 viser hvor mange traser en prosessor i en 24 prosessors MPP ville behandle hvis bingeområdene på figur 6 ble tilordnet respektive til prosessorer, slik at hver prosessor ble tilordnet 4 bingeområder (dvs. rektangulære områder bestående av 16 søyler og 8 rader eller 128 binger), bortsett fra den siste prosessor som vil bli tilordnet 3 bingeområder. Den mest opptatte prosessor vil behandle nesten 12 000 traser, mens den minst opptatte prosessor bare vil behandle 5 traser.
Den ovenstående betraktning betrakter bare marinseismiske datainnsamling. Imidlertid introduseres lastbehandlingsproblemer også i landseismisk datainnsamling. I landseismisk datainnsamling mottar multiple parallelle linjer av mottakere refleksjoner av skudd som er lokalisert langs multiple perpendikulære, parallelle linjer 101 og 103 som vist på figur 8. Linjene danner et gitter. Figur 8 gjengir en ideell 3D geometri for landundersøkelse. Skuddpunktene 100 er lokalisert langs horisontale linjer 101 og er angitt med X-er. Mottakerpunktene er lokalisert langs vertikale linjer 103 og er angitt med sirkler.
Landprestakkdata bli vanligvis samlet i "felles mottakersamlinger" bestående av traser innsamlet fra en enkelt mottaker fra alle skudd. Da generelt en felles mottakersamling består av data fra skuddpunkter lokalisert i alle retninger rundt om, og med forskjellige avstander fra mottakerstedet, en trasedekningen til en slik samling tilbøyelig til å være større i bingen nær mottakerstedet enn i dem som er lenger borte fra det. Når således multiple samlinger kombineres, vil det være binger med vesentlig høyere trasedekning enn andre, hvis mottakeren i kolleksjonen av samlinger befinner seg nær hverandre.
Fremgangsmåtene for lastbalansering i henhold til den foreliggende oppfinnelse er i stand til å håndtere både marine innsamlingsgeometrier og landinnsamlingsgeometrier.
Allokering av binger
For at en MPP signifikant skal redusere tiden som er nødvendig for å migrere et seismisk prestakkdatasett, må det finnes midler til å spalte opp migrasjonsoppgaven i et antall uavhengige oppgaver, en per behandlingsnode 16. Foretrukkede utførelser spalter opp den seismiske undersøkelse i et antall mindre områder, hvor hvert er tilordnet en node i MPP. Figur 9 gjengir en tilordning av node 16 til binge 38. Selv om figuren 9 for enkelthets skyld viser en binge 38 tilordnet hver node 16 ved hvilket som helst tidspunkt, blir vesentlig flere binger 38 i den foretrukkede utførelse tilordnet en node 16 på hvilket som helst tidspunkt. I praksis kan rektangulære områder eller grupper fra 32 til 16 binger tilordne seg en node 16 avhengig av mengden av minnene 20 som ligger i noden og den totale størrelse på den seismiske undersøkelse. Alternativt kan hver binge gjengitt på figur 9 tolkes som om den representerer et slikt rektangulært område eller gruppe av binger.
På figur 9 er hver separat tilordning av noder 16 til bingene 38 en sammenhengende undermengde av den seismiske undersøkelsesområde. Dette er ikke strengt påkrevet av fremgangsmåten i henhold til den foreliggende oppfinnelse, men ved en foretrukket utførelse av oppfinnelsen kan imidlertid sammenhengen av binger muliggjøre effektiv overføring av poststakkdata mellom minne til nodene og en datafil som befinner seg i platelagersystemet, av de samme grunner som omtalt tidligere med hensyn til prestakkdata.
Sammenhengen gjør det også mulig for en enkel algoritme å bestemme binge-nodetilordningen. På figur 9 består hver bingetilordning av to tall. Det nedre tall er indeksen for noden tilordnet til bingen - eller generelt til et område eller en gruppe binger - i mengden av prosesseringsnoder dedisert til den seismiske prosessering. Da disse nodene eksekverer migrasjons "-operatoren", betegnes de som "operatornoder". I et sett av operatornoder indekseres nodene fra 1 til O. Det øvre tallet indikerer hvilke av de potensielt mange tilordninger av operatornoder til binger som for øyeblikket er aktive. Når det er flere binger 38 eller flere områder eller grupper av binger enn det er operatornoder, vil hver operatornode måtte behandle data for en eller flere binger eller områder av binger. Figuren 9 gjengir 12 slike tilordninger av 8 noder. Bemerk at hvis en rad inneholder en spalte som er mindre en antallet noder, er det mulig å tilordne binger til venstre og høyre for spalten på samme tidspunkt.
Selv om hver operatornode under fremgangsmåten i henhold til den foreliggende oppfinnelse er tilordnet en uavhengig mengde av binger som dekker undersøkelsen, behøver ikke bingen å være uavhengig av prestakkdatatraser som er nødvendig for korrekt å danne poststakkdatatrasene assosiert med bingene 38. Man kan betrakte seismisk innsamlingsundersøkelser som gjengitt på figur 3 og en bingetilordning som gjengitt på figur 9. Det er klart at et hvilket som helst enkel forsøkstrase (f.eks. på figur 4) kan behøves av multiprosessorer.
Den foreliggende oppfinnelse skaffer prestakktrasedata til operatornoder. Fremgangsmåten i henhold til oppfinnelsen deler MPP 10 i et sett av " operator" - noder 44 og et sett av "inngangs"-noder 46 som gjengitt på figur 10. Operatornodene 44 tilordnes til ikke-overlappende undermengder av binger 38 i den seismiske undersøkelse, som tidligere omtalt. Operatornodene 44 benytter en migrasjonsoperator på multiple prestakktraser for trinnvis å danne en poststakktrase assosiert med hver tilordnet binge.
Behandling av data
I den foretrukkede utførelsen av oppfinnelsen leser inngangsnoden 46 data fra et skalerbart platelagersystem 12, så som et RAID subsystem. Denne type system kan effektivt levere store mengder av data til inngangsnodene, og dataene består av en stor sammenhengende blokk av prestakkdata som er likt delt i et antall mindre blokker, en mindre blokk til minnet 20 for hver inngangsnode 46. Alternativt kan prestakkdataene leses direkte inn i MPP 10 med bruk av en forbindelse til et utvendig datanettverk, så som HiPPI nettverk. Et vesentlig trekk ved fremgangsmåten i henhold til den foreliggende oppfinnelse er at hver sammenhengende blokk av data lest inn i MPP 10 fordeles over inngangsnodens minner. Inngangsnodene 46 leser data i sekvensielle sammenhengende blokker. Hver blokk inneholder et helt antall traser, og hver inngangsnode 46 leser et helt antall blokker inn i sitt minne 20 på en gang. Denne type lesing er effektiv, da den ikke forårsaker noen strid om kontroll over platelagersystemet 12 blant inngangsnodene 46.
Figur 11 gjengir en slik blokk 50 med en prestakktrase 52. Hver trase består av en tittelseksjon 54 og en dataseksjon 56. Dataseksjonen inneholder dataene som skal behandles eller migreres. Tittelseksjonen 54 inneholder informasjon som blant andre informasjoner identifiserer stedet for den seismiske kilde og mottakeren av de assosierte data.
Hver gang en blokk 50 av prestakkdata leses inn inngangssone 46, blir de følgende trinn foretatt: 1. Inngangsnodene 46 bestemmer unionen av den romlige dekning til hver av prestakktrasene 52 de inneholder. Unionen av den romlige dekning av trasen i hver inngangsnode 46 er en eller flere uregelmessige formede polygoner konstruert av bingen 38. For eksempel gjengir figur 9 unionoperasjonen for 2 prestakktrase-dekningsbeskrivelser. Det er klart at et hvilket som helst antall slike trasedekningsbeskrivelser kan sammenføyes i union og at å gjøre det vil danne et uregelmessig polygon av binger. 2. Når inngangsnodene 46 har beregnet denne unionen, kringkaster hver inngangsnode 46 til alle andre noder 44, 46 en kompakt beskrivelse av denne unionen av dekning. Inngangsnoden 0 kringkaster først, inngangsnoden 1 som den annen osv. inntil inngangsnoden I-l har sendt ut sin melding. Data-kontrollkommunikasjonsnettverket 14 sikrer at disse meldinger mottas i rekkefølge.
Beskrivelsen som kringkastes kan ha hvilken som helst form, forutsatt at den mottakende node (44, 46) fra den kan bestemme hvilke binger som er dekket. En mulig form er en 2D-matrise av booleske verdier som har samme form som den endelige undersøkelse (som eksemplifisert ved figur 9), hvor sanne elementer i matrisen betyr dekkede binger 38 eller grupper av binger, og falske elementer betyr udekkede binger. Fordi denne matrisen er tilbøyelig til å inneholde bare spredt dekning, er den foretrukkede utførelse av beskrivelsen igjen en "sparse matrise". Figur 12 viser en mulig sparsematrise-representasjon som en tabell av kjørelengdekodinger av de dekkede binger i hver rekke. Det skal forståes at andre presentasjoner er mulig, og ligger innenfor rammen av den foreliggende oppfinnelse.
Hver node 44, 46 som mottar en melding forener beskrivelsen til en initielt tom dekningsbeskrivelse, som til sist vil romme den sammensmeltede dekningsbeskrivelse. Etter at alle inngangsnodene 46 har kringkastet en beskrivelse av dekningen av trasene 52 som de rommer, og alle slike meldinger er mottatt av alle noder 44, 46, besitter alle noder en sammensmeltet beskrivelse av unionen av dekningen av alle trasene i alle inngangsnoder 46. Den sammensmeltede beskrivelsen svarer til det skyggelagte området på figur 9. Operatornoder 44 lagrer også hver inngangsnodes kringkating i en tabell indeksert med inngangsnodens nummer.
3. Etter at alle inngangsnoder 46 har kringkastet en beskrivelse av dekningen av
unionen av traser som de har lastet, og alle noder har mottatt meldinger, så besitter alle noder sammensmeltede beskrivelser av alle traser lastet inn i minnet 20 til alle inngangsnoder 44,46. Fra denne operasjonen og informasjonen er det mulig for alle operatornoder 44 uavhengig å velge sine bingetilordninger. En slik tilordning av binger 38 til operatornoden 44 bestemmes som følger:
a. Alle operatornoder 44 tilordner seg selv til en rektangulær matrise av binger. Antallet rader i matrisen er den samme i all operatornoder. Alle søyler i matrisen kan variere, men bare hvis operatornode 4 a priori vet hvor mange søyler enhver annen operatornode 44 tilordner seg selv, eller har midler til å bestemme denne informasjonen på egenhånd. En enkel strategi er å anta at alle operatorene 44 tilordner seg selv eller samme antall søyler x. b. Den første operatornode (operatornode 0) tilordner seg selv til en rektangulær matrise av binger, hvis nedre venstre hjørne faller sammen med den lavest dekkede binge lengst til venstre i den totale trasedekning. Anta at det nederste hjørne av tilordningen er binge x0,y0. Hvis alle operatornoder 44 tilordner seg x søyler, så vil det øvre venstre hjørne i tilordningen til operatornoden 0 dekke binge (x0+x-l, Yo<+y->i)-c. Hver resterende operatornode 44 tilordner seg selv til en rektangulær matrise av binger som er umiddelbart til høyre for matrisen tilordnet til operatornoden med indeks en mindre enn dens egen. Hvis alle operatornodene 44 f.eks. tilordner seg selv til x søyler, så dekker operatornodens l's tilordning en rektangulær matrise av binger, hvis nedre venstre hjørne er (x0+x0,y0) og hvis øvre høyre hjørne er (x0+2x-1, y0+y-l). Generelt vil en operatornode 44 hvis indeks er i, bli tilordnet (x0+ix,y0) og (x0+(i+l)x-l,y0+y-l). d. Noen operatornoder 44 kan tilordnes til rektangulære matriser av binger som ikke er fullstendig dekket av traser. Disse operatornoder 44 har mindre arbeid å gjøre enn andre operatornoder. Noen operatornoder tilordnes til rektangulære matriser av binger som ikke er dekket av alle traser. Disse operatornoder har ikke noe arbeid å gjøre. (Arbeid er her definert som bruk av DMO-operatoren for å danne poststakktraser fra forstakktraser).
Det skal forstås at andre tilordninger av binger 38 til noder er mulige. I den foretrukkede utførelse av oppfinnelsen er bingene tilordnet hvilken som helst operatornode 44 lagret i sammenhengende undermengde av poststakkdatafilen. Unionen av alle slike undermengder er selv en sammenhengende undermengde av poststakkdatafilen, som vist på figur 13. 4. Etter at en operatornode 4 tilordner seg selv til en mengde av binger, som beskrevet i trinn 3, laster den inn i sitt minne 20 poststakktrasene assosiert med bingene fra poststakkdatafilen. 5. Etter at operatornodene har bestemt til hvilke binge de er tilordnet og alle har lastet poststakktrasene assosiert med disse bingene, kan operatornodene 44 begynne å anmode om prestakkdatatrasene for inngangsnodene 46. Tidligere lagret informasjon om dekning per inngangsnode, (fra trinn 2 ovenfor) hjelper operatoren 44 å velge inngangsnode 46 til hvilken traseanmodninger skal sendes: En operatornode 44 sender traseanmodninger bare til de inngangsnoder 46 som rommer traser hvis dekning krysser operatorens bingeanordning. 6. Hver operatornodes anmodning til inngangsnode 46 om prestakktraser 52 innbefatter en beskrivelse av dens tilordnede binger og det maksimale antall traser som operatornoden 44 er villig til å motta. Operatornoden har ingen a priori kjennskap til antallet traser som inngangsnoden 46 rommer, og som skjærer operatornodens bingetilordning. Hvis operatornoden 44 mottar antallet traser der den anga at den var villig til å motta, ber den samme inngangsnode 46 om flere traser. Inngangsnoden 46 holder rede på trasene som er sendt til operatornoden, slik at den aldri sender samme trase mer enn en gang for den samme bingetilordningsbeskrivelse.
Hvis en operator node 44 noen gang mottar det maksimale antallet traser den anga at den var villig til å motta, må den konkludere med at inngangsnoden hvortil den sendte traseanmodningen har levert alle trasene hvis strekninger skjærer bingetilordningen. På dette punkt kan operatornoden sende en traseanmodning til neste inngangsnode 46 som rommer dekningen hvis binge skjærer dens bingetilordning. 7. Operatornodene 44 kan behandle de mottatte trasedata, som formålstjenlig. I noen tilfeller kan de behandle et mindre antall samtidig (hver gang de mottar traser fra en inngangsnode), i andre tilfeller kan de vente inntil alle traser er blitt mottatt fra alle inngangsnoder, og deretter behandle trasene. En hvilken som helst taktikk mellom disse to ytterligheter kan klart være mulig under fremgangsmåten i henhold til den foreliggende oppfinnelse. 8. Etter at alle prestakkdataene er blitt behandlet av operatornodene, kan den ovennevnte prosess gjentas. Hvis en ny bingetilordning av operatornodene danner en undermengde av binger dekket samlet av trasedataene i alle inngangsnoder, så kan trinnene 3-7 gjentas etter behov. Hver gang er den første operatornode av bingetilordningens nederste venstre hjørne den første ubehandlede binge som følger etter den siste binge behandlet av den siste operatornode i den tidligere anordning. Hvis det er dekkede binger som starter som rad y0 (eller mellom y0 og y0+y-l), så blir x0 ganske enkelt øket med Ox. Hvis ingen dekkede binger gjenstår til høyre for den tidligere bingetilordning, så blir (x0,y0) valgt som i trinn 3, men søket etter en rad som inneholder dekkede binger begynner y rader over raden hvor den tidligere y0 ble funnet. 9. Trinn 3-8 gjentas til det ikke gjenstår noen binger som ikke er blitt tilordnet og har fått prestakkdata behandlet i dem. 10. Trinn 1-9 gjentas for den neste blokk av inngangsdata fra filen på platelagersystemet inntil alle datafilene er blitt behandlet. Disse trinnene kan gjentas også for ytterligere filer.
Bestemmelse av trasedekning for lastbalansering
I samsvar med lastbalanseringsmetoden i henhold til foreliggende oppfinnelse, er MPP noder betegnet som inngangs-felleroperatornoder og inngangsnodene laster en samling av prestakktraser. Straks disse forstakktrasedata blir lest, bestemmer inngangsnoden antallet traser som dekker hvert rektangulært bingeområde. Figur 14 gjengir et dekningskart 110 av en datastruktur som er kompatibel med fremgangsmåten i henhold til foreliggende oppfinnelse hvorunder inngangsnodene kan lagre dekningsinformasjon. De foretrukne midler for å fylle denne datastrukturen er som følgende: 1. For hver trase i, som hver inngangsnode har lastet, bestemmer inngangsnoden en minste rektangulær omgivende boks Bj i et kartesisk koordinatsystem som omgir dekningen av trasen. Hvis migrasjons applikasjonen er en DMO-beregning, er dekningen en linje trukket mellom skudd og mottaker stedet for denne trase (figur 4). Skudd-mottaker stedet finnes i en tittelseksjon som går forut for datapartiet av trasen. 2. Hver inngangsnode forener hver slik omgivende boks B, for å danne den minste omgivende boksBL som omslutter de individuelle bokser som omgir trasen. 3. Hver inngangsnode kringkaster til alle andre noder (inngangs-operatornoder) i MPP en kompakt beskrivelse av sin omgivende boks BL dannet i trinn 2. I den foretrukkede utførelse av den foreliggende oppfinnelse består denne melding av boksens x koordinater lengst til venstre og lengst til høyre og de øverste og de nederste y koordinater til boksen.
Hver node som opptar en slik kringkasting forener den beskrevne omgivende boks BL med en global beskrivelse BG av en omgivende boks, slik at etter at alle meldinger er mottatt, beskriver BG den minste omgivende boks som omslutter hver nodes BL. 4. Alle noder har nå tilstrekkelig informasjon til å danne et dekningskart 110, som vist på figur 14, for å romme trasedekningsinformasjon for alle data som hver inngangsnode har lastet. Dette dekningskart betegnes som det "sammensmeltede kart".
Bunnradfeltet 111 i datastrukturen inneholder den nedre venstre y-koordinaten til BG delt med høyden av bingen i denne undersøkelse og deretter avrundet til neste minste multippel av bingeområdehøyden (antall rader i bingen som er gruppert sammen og danner bingeområdet).
Bunndatafeltet 112 i datastrukturen inneholder en nedre venstre x koordinat Bgdelt med bredden av bingen i denne undersøkelse og deretter avrundet ned til det nest minste multippel av bingeområdebredden (antallet søyler i binger som hver er gruppert sammen og danner et bingeområde).
Områdebreddefeltet 113 inneholder antallet søyler i binger som er gruppert sammen for å danne et bingeområde. Denne informasjon kan også være kodet til DMO-beregninger som et konstant tall, i hvilket tilfelle de ikke behøver å innbefattes i trasedekningsdatastrukturen.
Områdehøydefeltet 114 rommer bingeområdehøyden. Denne informasjon kan også kodes i DMO-beregningen som et konstant tall, som i tilfelle ikke behøver å innbefattes i trasedekningsdatastrukturen.
Feltet 115 for antall områderader inneholder bingens områdebredde. Denne informasjonen beregnes ut fra høyde av den omgivende boks BG, avrundet opp til det neste multiplum av bingeområdehøyden.
Feltet for antall bingesøyler 116 inneholder antall søyler av bingeområder som er blitt beskrevet av datastrukturen. Denne informasjonen beregnes fra bredden av boks BG avrundet opp til den nest høyeste multiplum av bingeområdebredden.
Peker til dekningstellings-feltet 117 inneholder en peker til en todimensjonal matrise 118 (figur 14) i hvilken trasedekningstellinger i individuelle bingeområder vil bli lagret. Denne matrisen kan allokeres så snart antallet områderader og antallet områdesøyler er kjent, da disse to informasjoner bestemmer høyden og bredden av matrisen. Når matrisen er allokert, initialiseres den til å inneholde 0 i hvert element. Hvert bingeområde som omgir bunnraden 111 og bunnsøylen 112 i dekningskartet 110 er matriseelementet 119.
Det skal forstås at andre datastrukturer som tillater essensielt den samme informasjon å bli lagret, faller innenfor rammen for fremgangsmåten i henhold til den foreliggende oppfinnelse. 5. Inngangsnoder danner et dekningskart 110 hvor de plasserer trasedekningsinformasjon for hvert bingeområde, dekket av unionen av traser det har lastet.
For hver lastet trase bestemmer inngangsnoden hvilke bingeområder som krysses av trasen. For hvert slikt bingeområde inkrementerer noden med 1 det tilsvarende element i trasedekningsmatrisen 118 for dekningkartet 110.
På dette punkt har hver inngangsnode et dekningskart som beskriver hvordan hver trase den har lastet dekker den seismiske undersøkelse. Hver node sender så informasjon i sitt dekningskart til alle andre noder i MPP. I den foretrukkede utførelse av oppfinnelsen sendes denne informasjonen som følger: 1. Hver inngangsnode sender to kringkastingsmeldinger. Den første meldingen inneholder lengden på den annen melding. Denne lengden er tilstrekkelig til å innbefatte både partier av dekningskartet med fast størrelse og partier av dekningskartet med variabel størrelse (dvs. dekningstellingsmatrisen). Den andre meldingen inneholder dekningskartet, gjengitt i en form som kan sendes gjennom kontroll-datanettverket 14 i MPP 10 og restaureres i maskinlesbar form for hver prosessornode 16. Figur 16 gjengir et meldingsformat kompatibelt med fremgangsmåten i henhold til foreliggende oppfinnelse.
2. Når en node mottar den første melding, allokerer den en buffer som er i stand til å romme den annen melding. Etter at noden mottar den annen melding i bufferen, behandler den data i bufferen for å gjenskape en kopi av
dekningskartdatastrukturen 110 sendt av den kringkastende node.
3. Hver node adderer deretter denne informasjonen i det mottatte dekningskart til sitt sammensmeltede dekningskart. Dette gjøres ved å addere dekningstellingsinformasjonen element for element til det mottatte dekningskart, til dekningskartinformasjonen i det sammensmeltede dekningskart.
Bingeallokering for lastbalansering
Etter at hver inngangsnode har sent sin dekningskartinformasjon, besitter alle noder identisk sammensmeltede dekningskart som beskriver trasedekningsinformasjon for hvert dekket bingeområde i undersøkelsen. Fra denne informasjonen bestemmer alle noder parallelt hvordan de best skal allokere bingeområder til operatornoder under forutsetning av optimal lastbalansering. Hver allokeringsberegning er den samme, og beregningen til en node er uavhengig av beregningen på andre noder. Da dataene nodene begynner med er identiske og da allokeringsberegningen er identisk, bestemmer hver node imidlertid den samme allokering av bingeområde til operatornodene. Når alle noder således har avsluttet allokeringsberegningen, besitter hver den samme informasjon om bingeallokeringen.
Mange allokeringsalgoritmer er mulige i samsvar med fremgangsmåten i henhold til den foreliggende oppfinnelse. Den foretrukkede metode er som følger: 1. For det første belte (eng.: swath) av rader som inneholder dekkede bingeområder, beregnes den midlere bingeomerådedekningsverdi. Dette gjøres ved å summere dekningstellingen for hver bingeområdesøyle og dividere med antallet bingeområder som inneholder verdier større enn 0. 2. En initial måldekningsverdi som skal tilordnes til hver operator, bestemmes. Denne målverdi er ganske enkelt den midlere dekningsverdi som nettopp ble beregnet, multiplisert med halvparten av det maksimale antall bingeområder operatornoden er i stand til å behandle på hvilket som helst tidspunkt. 3. Den første operatornode tilordnes tilstrekkelige bingeområder til at det overskrider målverdien. Det første bingeområdet er bingeområdet lengst til venstre i beltet som inneholder binger som ennå ikke er blitt behandlet. Ingen flere
bingeområder tilordnes til operatornodene enn et tidligere spesifisert maksimalt antall bingeområder, og intet bingeområde bortenfor bingeområdet lengst til høyre i beltet som inneholder dekkede binger blir tilordnet. 4. Resterende operatornoder tilordnes bingeområder i trinn 3, bortsett fra at det første bingeområdet som tilordnes er det til høyre for det bingeområdet som ble tilordnet til den foregående operatornode.
Figur 16 viser hvordan den resulterende allokering av bingeområder til operatornoder jevner ut antallet traser som skal behandles av hver operatornode for dekningsdataene på figur 6. Sammenlignet med figur 7 er variansen i antallet traser tilordnet til hver node signifikant mindre, som også antallet traser tilordnet til en enkelt node er det. Figur 17 viser hvordan allokeringsalgoritmen tilordnes et forskjellig antall søyler til forskjellige noder for å oppnå denne forbedrede lastbalansering. I dette tilfellet var bingeområdebreddens 4 søyler, således tilordnes hver node et multiplum av 4 søyler. Nodene tilordnet de fleste søyler blir tilordnet 44 søyler (11 bingeområder), mens nodene tilordnet de siste søyler ble tilordnet 8 (2 bingeområder).
Poststakkdataoverføring.
Når bingeområde-tilordningene er bestemt, laster operatornodene poststakktrasedataene svarende til sine tilordnede binger fra poststakkdatafilen inn i sine minner. I den foretrukkede utførelsen av oppfinnelsen befinner datafilen som inneholder poststakktrasen seg i et platelagersystemet eller fjernminnet 12 i MPP. Slik det er bemerket, må det være mulig å laste disse data i en enkelt operasjon. Figur 18 gjengir en poststakkdatafilorganisasjon som er konsistent med fremgangsmåten i henhold til denne oppfinnelse, og som tillater at ulike antall filer av poststakkdata lastes inn i forskjellige operatornoder i en enkelt inngangsoperasjon i en fra platelagersystemet 12. Figur 19 viser et eksempel på et undersøkelsesområde 160 for bedre å forstå datafilorganisasjonen på figur 18.
Undersøkelsesområdet 160 dekket av poststakkdatafilen 130 er antatt å være et rektangel som inneholder et antall rader av søyler og binger 166. Undersøkelsesområde 160 spaltes opp i et antall belter 162, idet hvert beiteområde har bredden W til undersøkelsesområde 160, men bare høyden H til et bingeområde. Bingeområdet er en eller flere sammenhengende binger, foretrukket et rektangel så som betegnet med 164 i figur 19. Innenfor hvert belte 162 går den første søyle forut for den andre søyle som går forut for den tredje søyle osv. over hele bredden av beltet. Innenfor hver søyle går data fra den annen rad som går forut for data i den tredje rad osv. for høyden av et bingeområde.
På figur 18 er således poststakkdatafilen 130 sammensatt av en sekvens av blokker som hver er B byter lang. Hver blokk inneholder poststakkdata for en enkelt binge. Disse data kan omfatte en eller flere traser. Den første blokk inneholder poststakkdata for bingen ved søyle 0, rad 0 og av bingen i det øvre venstre hjørne dekket av poststakkdatafilen. Den andre blokken 132 inneholder data for bingen ved søyle 0, rad 1. Påfølgende blokker i poststakkdatafil 130 inneholder data for radene 2 til H-l i søyle 0, hvor H er høyden av et bingeområde. Blokken 141 inneholder data for søyle 0, rad H-l. Blokken 142 som umiddelbart følger etter blokk 141 inneholder dataene for søyle 1 rad 0. Blokk 151 inneholder data for søyler W-l rad H-l. Blokk 152 som umiddelbart følger blokk 151, inneholder data for søyle 0, rad H.
Poststakkdataiflarrangementet vist på figur 18 tillater således at en gruppe datablokker som inneholder et hvilket som helst antall søyler, og starter ved hvilken som helst initial søyle, overføres mellom lokale minne 20 i prosessornodene 18 og poststakkdatafil 130 på datalagringssystemet 12 i en enkelt stor datablokk i en eneste inngangs- eller utgangsoperasjon. Antallet rader i en datagruppe overført inn eller ut av hver node 18 må være lik høyden av et bingeområde, og den første rad i en datagruppe som skal overføres, må være et multiplum av bingeområdehøyden. Antallet søyler i en datagruppe som skal overføres inn eller ut av hver node 18 kan være forskjellig. Selv om den foretrukkede utførelse betrakter et antall rader i hver datagruppe, vil et alternativ være å fiksere antallet søyler og variere antallet rader. Hver node overfører c x B x H byter fra den store datablokk, for å overføre c søyler, hvor c er antallet bingeområder allokert til noden 18 multiplisert med antallet søyler i et bingeområde.
Når poststakkdataene blir lastet inn i minner i operatornodene, kan operatornodene hente data fra prestakkdata fra inngangsnoden som rommer dem og benytte DMO-operatoren på prestakkdataene for å oppdatere poststakkdataene. Når alle operatorene og nodene er ferdige med å behandle prestakkdata som dekker deres bingetilordninger, skriver de sin oppdaterte poststakktraseinformasjon tilbake til poststakkdatafilen og benytter en invers operasjon i forhold til den som tidligere ble omtalt for lesning av prestakktrasedataene.
Claims (10)
1. Fremgangsmåte for å tilordne seismiske prestakkinngangsdata fra en seismisk undersøkelse til prosesseringsnoder i en multiprosessordatamaskin med fjernminne og lokalminne,
karakterisert ved at fremgangsmåten omfatter: a) å inndele prosesseringsnodene i en rekke inngangs- og operatornoder; b) å lese seismiske prestakkinngangsdata fra fjernminnet til det lokale minnet i inngangsnodene; c) å bestemme dekningen av seismiske forstakkinngangsdata forbundet med hver binge i den seismiske undersøkelse; d) å kringkaste dekningen til minst operatorprosesseringsnodene; e) å tilordne områder innenfor dekningen til operatorprosesseringsnodene.
2. Fremgangsmåte i henhold til krav 1, karakterisert ved at den omfatter trinn for - å la hver operatornode anmode om og motta seismiske prestakkdata for et tilordnet område fra en inngangsnode som er i besittelse av de seismiske data, og - å prosessere de mottatte seismiske data.
3. Fremgangsmåte i henhold til krav 1, karakterisert ved at dekningen i en begrenset region av jorden deles i en matrise av binger.
4. Fremgangsmåte i henhold til krav 3, karakterisert ved at områdene omfatter en eller flere binger innenfor dekningen.
5. Fremgangsmåte i henhold til krav 3, karakterisert ved at tilordningstrinnet e) omfatter sekvensielt å tilordne en operatornode et område som er romlig sammenhengende med et forutgående tilordnet område
6. Fremgangsmåte i henhold til krav 1, karakterisert ved at trinn e) innbefatter å tilordne områder med dekningen generelt tilsvarende lastbalanseprosesseringen
7. Fremgangsmåte i henhold til krav 1, karakterisert ved at fremgangsmåten for et antall operatornoder omfatter trinnene f) at hver operatornode leser seismiske poststakksdata for de tilordnete områder fra fjernminnet til sitt lokalminne, g) at hver operatornode leser til sitt lokalminne sin tilordnede dekning av prestakkdata fra inngangsnodens lokalminne, h) at hver operatornode benytter en "dip moveout migrasjonsoperasjon" for sin prestakkdekningsoppdatering og for å oppdatere sine prestakkdata, og i) at hver operatornode skriver sine oppdaterte prestakkdata fra lokalminnet til fjernminnet.
8. Fremgangsmåte i henhold til krav 1, hvor de seismiske prestakkinngangsdata i trinn c) omfatter trasedata, og hvor fremgangsmåten for hver inngangsnode er karakterisert ved å - bestemme den minste individuelle rektangulære omgivende boks som omslutter bingene for hver trasedekning som inngangsnoden har lastet og - å forene alle omgivende bokser for å danne den minste forenede omgivende boks som omslutter alle individuelle, omgivende bokser.
9. Fremgangsmåte i henhold til krav 1, karakterisert ved at tilordningstrinnet e) omfatter - deling av den seismiske undersøkelse i områder av sammenhengende blokker av binger, - deling av hver blokk i en rekke underblokker, med antallet underblokker lik antallet operatornoder og med trasedekninger tilnærmet lik i hver underblokk.
10. System for å prosessere seismiske prestakkdata, omfattende
en multiprosessordatamaskin med en rekke prosesseringsanordninger, idet hver prosesseringsanordning har et vilkårlig (random) aksessminne og minst en prosessor,
et skalerbart platelagersystem som inneholder seismiske prestakkdata, og et data-og kontrollkommunikasjonettverk som forbinder behandlingsanordningene og platelagersystemet til datamaskinen,
karakterisert ved- at prosesseringsanordningene har inngangs- og operatornoder, slik at inngangsnodene er innrettet til å lese seismiske prestakkdata i random-aksessminnet, bestemme dekningen av seismiske data i en respektiv inngangsnode, og meddele dekningen over kommunikasjonsnettverket til operatornodene,
og at hver operatornode kan tilordnes et dekningsområde innrettet til å anmode om og motta seismiske data fra inngangsnoder som rommer data som reagerer på dekningsområdet, og for å prosessere de mottatte data.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16012393A | 1993-12-01 | 1993-12-01 | |
PCT/US1994/013704 WO1995015506A1 (en) | 1993-12-01 | 1994-12-01 | Method for inputting and load balancing seismic data for seismic processing on a multiprocessor computer |
Publications (3)
Publication Number | Publication Date |
---|---|
NO962226D0 NO962226D0 (no) | 1996-05-30 |
NO962226L NO962226L (no) | 1996-08-01 |
NO310323B1 true NO310323B1 (no) | 2001-06-18 |
Family
ID=22575612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
NO19962226A NO310323B1 (no) | 1993-12-01 | 1996-05-30 | Innlegging og lastbalansering av seismiske data for prosessering på en flerprosessordatamaskin med inngangs- ogoperatornoder |
Country Status (7)
Country | Link |
---|---|
US (2) | US5537319A (no) |
EP (1) | EP0731927B1 (no) |
AU (1) | AU676110B2 (no) |
CA (1) | CA2177849C (no) |
DE (1) | DE69418480D1 (no) |
NO (1) | NO310323B1 (no) |
WO (1) | WO1995015506A1 (no) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6327607B1 (en) * | 1994-08-26 | 2001-12-04 | Theseus Research, Inc. | Invocation architecture for generally concurrent process resolution |
EP0707269A1 (en) * | 1994-10-11 | 1996-04-17 | International Business Machines Corporation | Cache coherence network for a multiprocessor data processing system |
AU706652B2 (en) * | 1995-07-28 | 1999-06-17 | Exxon Production Research Company | Method for determining seismic data traveltime fields on a massively parallel computer |
WO1997013213A1 (en) * | 1995-10-06 | 1997-04-10 | Exxon Production Research Company | Method of dip moveout analysis on a massively parallel computer |
US5734829A (en) * | 1995-10-20 | 1998-03-31 | International Business Machines Corporation | Method and program for processing a volume of data on a parallel computer system |
CA2176058C (en) * | 1996-05-08 | 1999-03-02 | William Nicholas Goodway | Three-dimensional seismic acquisition |
US5987387A (en) * | 1996-10-02 | 1999-11-16 | Exxon Production Research Company | Method of dip moveout analysis on a massively parallel computer |
US5930731A (en) * | 1997-02-03 | 1999-07-27 | Pgs Tensor, Inc. | Method and system for acquisition and processing of marine seismic data |
US6496823B2 (en) | 1997-11-07 | 2002-12-17 | International Business Machines Corporation | Apportioning a work unit to execute in parallel in a heterogeneous environment |
US6317695B1 (en) | 2000-03-30 | 2001-11-13 | Nutec Sciences, Inc. | Seismic data processing method |
US6745285B2 (en) * | 2000-12-18 | 2004-06-01 | Sun Microsystems, Inc. | System and method for synchronizing mirrored and striped disk writes |
US7380239B1 (en) | 2001-05-31 | 2008-05-27 | Oracle International Corporation | Method and mechanism for diagnosing computer applications using traces |
US7376937B1 (en) * | 2001-05-31 | 2008-05-20 | Oracle International Corporation | Method and mechanism for using a meta-language to define and analyze traces |
US7512954B2 (en) * | 2002-07-29 | 2009-03-31 | Oracle International Corporation | Method and mechanism for debugging a series of related events within a computer system |
US7165190B1 (en) | 2002-07-29 | 2007-01-16 | Oracle International Corporation | Method and mechanism for managing traces within a computer system |
US7200588B1 (en) | 2002-07-29 | 2007-04-03 | Oracle International Corporation | Method and mechanism for analyzing trace data using a database management system |
US6915212B2 (en) * | 2003-05-08 | 2005-07-05 | Moac, Llc | Systems and methods for processing complex data sets |
FR2858063B1 (fr) * | 2003-07-21 | 2005-09-16 | Geophysique Cie Gle | Procede d'estimation du taux de couverture d'illumination dans le domaine migre |
US6996470B2 (en) * | 2003-08-01 | 2006-02-07 | Moac Llc | Systems and methods for geophysical imaging using amorphous computational processing |
US9207991B2 (en) | 2012-06-25 | 2015-12-08 | International Business Machines Corporation | Methods and apparatus for processing load balancing in distributed problem processing |
US10591638B2 (en) | 2013-03-06 | 2020-03-17 | Exxonmobil Upstream Research Company | Inversion of geophysical data on computer system having parallel processors |
US9995835B2 (en) * | 2013-07-17 | 2018-06-12 | Chevron U.S.A. Inc. | System and method of implementing finite difference time domain models with multiple accelerated processing components (APCS) |
CN105093283B (zh) * | 2014-05-16 | 2017-12-01 | 中国石油化工股份有限公司 | 一种三维观测系统面元属性多线程快速显示方法 |
CN104769459A (zh) * | 2014-09-19 | 2015-07-08 | 杨顺伟 | 一种高效叠前时间偏移速度分析方法 |
US11280924B2 (en) * | 2017-05-17 | 2022-03-22 | Saudi Arabian Oil Company | Suppressing noises in seismic data |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4598400A (en) * | 1983-05-31 | 1986-07-01 | Thinking Machines Corporation | Method and apparatus for routing message packets |
US4744064A (en) * | 1984-07-20 | 1988-05-10 | Exxon Production Research Company | Method and apparatus for seismic exploration |
US4773038A (en) * | 1986-02-24 | 1988-09-20 | Thinking Machines Corporation | Method of simulating additional processors in a SIMD parallel processor array |
GB8617674D0 (en) * | 1986-07-19 | 1986-08-28 | Armitage P R | Seismic processor |
US4827403A (en) * | 1986-11-24 | 1989-05-02 | Thinking Machines Corporation | Virtual processor techniques in a SIMD multiprocessor array |
NO167423C (no) * | 1989-05-31 | 1991-10-30 | Geco As | Fremgangsmaate ved samtidig innsamling av seismiske data for grunne og dype maal. |
US5138584A (en) * | 1989-09-06 | 1992-08-11 | Chevron Research & Technology Company | Migration of seismic turning waves |
US5198979A (en) * | 1989-09-26 | 1993-03-30 | Shell Oil Company | Seismic migration of multiprocessor computer |
US5150331A (en) * | 1991-03-25 | 1992-09-22 | Amoco Corporation | Method for enhancing seismic data |
US5128899A (en) * | 1991-07-16 | 1992-07-07 | Conoco Inc. | Method for sharpening prestack depth migration images by removing residual moveout from common image point gathers before stacking |
US5349527A (en) * | 1991-12-20 | 1994-09-20 | Schlumberger Technology Corporation | Method of seismic time migration using a massively parallel computer |
-
1994
- 1994-04-07 US US08/224,603 patent/US5537319A/en not_active Expired - Lifetime
- 1994-12-01 EP EP95904173A patent/EP0731927B1/en not_active Expired - Lifetime
- 1994-12-01 WO PCT/US1994/013704 patent/WO1995015506A1/en active IP Right Grant
- 1994-12-01 DE DE69418480T patent/DE69418480D1/de not_active Expired - Lifetime
- 1994-12-01 CA CA002177849A patent/CA2177849C/en not_active Expired - Fee Related
- 1994-12-01 AU AU12968/95A patent/AU676110B2/en not_active Ceased
-
1995
- 1995-04-13 US US08/421,140 patent/US5530646A/en not_active Expired - Lifetime
-
1996
- 1996-05-30 NO NO19962226A patent/NO310323B1/no not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP0731927A1 (en) | 1996-09-18 |
EP0731927B1 (en) | 1999-05-12 |
NO962226L (no) | 1996-08-01 |
AU676110B2 (en) | 1997-02-27 |
US5537319A (en) | 1996-07-16 |
WO1995015506A1 (en) | 1995-06-08 |
AU1296895A (en) | 1995-06-19 |
NO962226D0 (no) | 1996-05-30 |
DE69418480D1 (de) | 1999-06-17 |
US5530646A (en) | 1996-06-25 |
CA2177849A1 (en) | 1995-06-08 |
CA2177849C (en) | 2000-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
NO310323B1 (no) | Innlegging og lastbalansering av seismiske data for prosessering på en flerprosessordatamaskin med inngangs- ogoperatornoder | |
US5734829A (en) | Method and program for processing a volume of data on a parallel computer system | |
US7095678B2 (en) | Method for seismic imaging in geologically complex formations | |
NO20161236A1 (no) | Fremgangsmåte for å skape felles offset/felles asimut-samlinger i 3D seismiske undersøkelser, samt system for å utføre refleksjonsattributt-variasjonsanalyse | |
EP0617799B1 (en) | Method of seismic migration using a massively parallel computer | |
US5995904A (en) | Method for frequency domain seismic data processing on a massively parallel computer | |
US10139511B2 (en) | Staggered source array configuration system and method | |
NO338950B1 (no) | System og fremgangsmåte for prestakkings-avbildning | |
CN102628956A (zh) | Gpu/cpu协同方式可控震源数据相关处理设备及方法 | |
CN110031898B (zh) | 数据优化方法及积分法叠前深度偏移方法 | |
CN105960600A (zh) | 在多个地震勘探船之间具有变化的相对距离的地震数据获取 | |
CA2222721C (en) | Method for determining seismic data traveltime fields on a massively parallel computer | |
AU707757B2 (en) | Method for frequency domain seismic data processing on a massively parallel computer | |
US5987387A (en) | Method of dip moveout analysis on a massively parallel computer | |
Epili et al. | Implementation of 3-D prestack Kirchhoff migration, with application to data from the Ouachita frontal thrust zone | |
AU705347B2 (en) | Method of dip moveout analysis on a massively parallel computer | |
NO844484L (no) | Fremgangsmaate ved utfoerelse av en 3-dimensjonal, seismisk undersoekelse. | |
Epili et al. | Parallel implementation of 3-D prestack Kirchhoff migration with application to field data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM1K | Lapsed by not paying the annual fees |