Tarpląstelinio sąveikavimo imitacinio modelio optimizavimas ir tyrimas

Panašūs dokumentai
skaitiniai metodai 1

skaitiniai metodai 1

10 Pratybos Oleg Lukašonok 1

Microsoft Word - 8 Laboratorinis darbas.doc

VILNIAUS UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS PROGRAMŲ SISTEMŲ KATEDRA Atsitiktinės paieškos optimizavimo algoritmų vertinimas Evaluat

PowerPoint Presentation

* # * # # 1 TIESĖS IR PLOKŠTUMOS 1 1 Tiesės ir plokštumos 1.1 Lygtys ir taškų aibės Sferos lygtis Tarkime, kad erdvėje apibrėžta Dekarto stačiak

Layout 1

PowerPoint Presentation

LIETUVOS JAUNŲJŲ MATEMATIKŲ MOKYKLA 7. PAPRASČIAUSIOS DIFERENCIALINĖS LYGTYS ( ) Teorinę medžiagą parengė ir septintąją užduotį sudarė prof. d

4 skyrius Algoritmai grafuose 4.1. Grafų teorijos uždaviniai Grafai Tegul turime viršūnių aibę V = { v 1,v 2,...,v N } (angl. vertex) ir briaun

Projektas „Europos kreditų perkėlimo ir kaupimo sistemos (ECTS) nacionalinės koncepcijos parengimas: kreditų harmonizavimas ir mokymosi pasiekimais gr

Microsoft Word - DV_Rekomendacijos2

VERSLO IR VADYBOS TECHNOLOGIJŲ PROGRAMA

RR-GSM_IM_LT_110125

Slide 1

LIETUVOS ŽEMĖS ŪKIO UNIVERSITETAS

DB sukūrimas ir užpildymas duomenimis

Logines funkcijos termu generavimo algoritmas pagristas funkciniu modeliu

Masyvas su C++ Užduotys. Išsiaiškinkite kodą (jei reikia pataisykite) ir paleiskite per programą. Ciklo skaitliuko įrašymas į vienmatį masyvą: #includ

Slide 1

DBVS realizavimas Pagrindiniai DBVS komponentai Duomenų saugojimas diske Paruošė J.Skučas

Algoritmø analizës specialieji skyriai

Microsoft Word - 15_paskaita.doc

Dažniausios IT VBE klaidos

PATVIRTINTA Lietuvos banko valdybos 2015 m. sausio 29 d. nutarimu Nr (Lietuvos banko valdybos 2018 m. spalio 30 d. nutarimo Nr redakcij

DĖL APLINKOS IR SVEIKATOS MOKSLO KOMITETO ĮSTEIGIMO

Lietuvos mobiliojo ryšio operatorių 30Mbit/s zonų skaičiavimo metodika

Elektronu igreitejimo stipriame elektriniame lauke itaka fotolaidžios terahercu antenos savybems

Lietuvos mokslo ir studijų institucijų kompiuterių tinklas LITNET Vilniaus universitetas Mokslininko darbo vietos paslauga Paslaugos naudojimo instruk

PATVIRTINTA Valstybinės kainų ir energetikos kontrolės komisijos pirmininko 2017 m. d. įsakymu Nr. O1- VALSTYBINĖS KAINŲ IR ENERGETIKOS KONTROLĖS KOMI

PowerPoint Presentation

INTERVIU CIKLAS DĖL PRAMONĖS 4.0 EKOSISTEMOS VYSTYMO PRIEMONIŲ KAS DALYVAVO? 20 6 apdirbamosios gamybos įmonių (t.y. 25 % Panevėžio regiono apdirbamos

PATVIRTINTA Mykolo Romerio universiteto Rektoriaus 2014 m. birželio 2 d. įsakymu Nr.1I-291 MYKOLO ROMERIO UNIVERSITETO LAIKINOSIOS STUDIJŲ REZULTATŲ Į

VALSTYBINIO SOCIALINIO DRAUDIMO FONDO VALDYBOS

Banko_paslaugu_internetu_teikimo_salygos_

untitled

Algoritmai ir duomenų struktūros (ADS) 7 paskaita Saulius Ragaišis, VU MIF

Neiškiliojo optimizavimo algoritmas su nauju bikriteriniu potencialiųjų simpleksų išrinkimu naudojant Lipšico konstantos įvertį

EUROPOS KOMISIJA Briuselis, C(2017) 4679 final KOMISIJOS ĮGYVENDINIMO SPRENDIMAS (ES) / dėl bendros sistemos techninių standa

PowerPoint Presentation

LIETUVOS RESPUBLIKOS ŪKIO MINISTRAS

Projektas PATVIRTINTA Alytaus Sakalėlio pradinės mokyklos direktoriaus įsakymu Nr. V- ALYTAUS SAKALĖLIO PRADINĖS MOKYKLOS ELEKTRONINIO DIENYNO T

Slide 1

Elektroninio dokumento nuorašas UKMERGĖS RAJONO SAVIVALDYBĖS ADMINISTRACIJOS DIREKTORIUS ĮSAKYMAS DĖL NACIONALINIO MOKINIŲ PASIEKIMŲ PATIKRINIMO (DIAG

Printing AtvirkstineMatrica.wxmx

„PowerPoint“ pateiktis

Mažeikių r. Tirkšlių darželio „Giliukas“ metinio veiklos vertinimo pokalbio su darbuotoju tvarkos aprašas

INSTITUCIJOS, VYKDANČIOS MOKYTOJŲ IR ŠVIETIMO PAGALBĄ TEIKIANČIŲ SPECIALISTŲ KVALIFIKACIJOS TOBULINIMĄ, 2013 METŲ VEIKLOS ĮSIVERTINIMO IŠVADOS 1. Inst

Teorinių kontrolinių sąlygos ir sprendimai Vytautas Kazakevičius 2016 m. gruodžio 20 d. Teiginiai ( ). 1. (0.05 t.) Užrašykite formule tokį t

„This research is funded by the European Social Fund under the Global Grant masure“

Microsoft Word - SDH2.doc

NAUJOVĖ Celiuliazė Beta gliukozidazė Individuali produkto koncepcija mažesniam klampumui ir geresniam substrato panaudojimui pasiekti Kitos gliukanazė

VALSTYBINĖS MOKESČIŲ INSPEKCIJOS

Baltstogės universiteto Ekonomikos ir informatikos fakulteto Vilniuje veiklos gerinimo planas remiantis Baltstogės universiteto Vilniaus Ekonomikos ir

EUROPOS SĄJUNGOS TAR YB A Briuselis, 2012 m. gruodžio 3 d. (04.12) (OR. en) 16889/12 Tarpinstitucinė byla: 2012/0339 (NLE) PECHE 505 PASIŪLYMAS nuo: E

Algoritmai ir duomenų struktūros (ADS) 2 paskaita Saulius Ragaišis, VU MIF

LIETUVOS RESPUBLIKOS ŠVIETIMO IR MOKSLO MINISTRO

LIETUVOS RESPUBLIKOS ŠVIETIMO IR MOKSLO MINISTRO Į S A K Y M A S DĖL STUDIJŲ PAKOPŲ APRAŠO PATVIRTINIMO 2011 m. lapkričio 21 d. Nr. V-2212 Vilnius Sie

Ekonomikos inžinerijos studijų programos (valstybinis kodas: 612L10009) specializacijų aprašai Specializacija E-verslo ekonomika Specializaciją kuruoj

Isvestiniu_taikymai.dvi

PATVIRTINTA

Projektas

VALSTYBINĖ KAINŲ IR ENERGETIKOS KONTROLĖS KOMISIJA NUTARIMAS DĖL AB ENERGIJOS SKIRSTYMO OPERATORIUS ELEKTROS ENERGIJOS PERSIUNTIMO PASLAUGOS KAINŲ IR

UAB Utenos šilumos tinklai (šilumos tiekėjo ir (ar) karšto vandens tiekėjo pavadinimas) įm.k , PVM mokėtojo kodas LT , Pramonės g. 11

Projektas

LIETUVOS RESPUBLIKOS ENERGETIKOS MINISTRO

Sutartis aktuali nuo

Microsoft Word - Palmolive_Drogas_full_rules_April_2019.doc

Prekių pirkimo pardavimo taisyklės

RYŠIŲ REGULIAVIMO TARNYBOS

LIETUVOS ŽEMĖS ŪKIO UNIVERSITETAS

MAGENTO 1.9 OMNIVA MODULIO DIEGIMO INSTRUKCIJA

Pensijų sistemos reforma PRIVATUMO POLITIKA Šios privatumo politikos tikslas. Ši privatumo politika ( Privatumo politika ) nustato asmens duomenų tvar

Individualus projektas Programa TE-PM, TE-PS, TE-SL, TEstream 4, TEstream 6, TEstream 8, TEstreamOBD 4, TEstreamOBD 6, TEstreamOBD 8 sistemų naudotoja

Sistemos specifikacija

Lietuvos Respublikos užsienio reikalų ministerija Kvietimas teikti paraiškas dalyvauti prašymus išduoti Šengeno vizas priimančių išorės paslaugų teikė

Lietuvos mokinių matematikos olimpiada Rajono (miesto) etapo užduočių klasei sprendimai 2015 m. 1 uždavinys. Aistė užrašė skaičių seką: 1 (2 3)

Lietuvos energetikos instituto

Privalomai pasirenkamas istorijos modulis istorija aplink mus I dalis _suredaguotas_

Projektą vykdančiojo personalo darbo užmokesčio ir savanoriško darbo įnašo fiksuotojo įkainio nustatymo tyrimo ataskaita 2016 m. birželio 8 d. redakci

VILNIAUS KOLEGIJA AGROTECHNOLOGIJ FAKULTETAS CHEMIJOS KATEDRA Tyrimas: STUDENTAI APIE KURSINĮ DARBĄ Dalykas: LABORATORIJ VEIKLA Tyrimą atliko lektorė:

PATVIRTINTA

LIETUVOS ITS POLITIKA IR ĮGYVENDINIMAS: STATUS QUO IR ESMINIAI POKYČIAI FORMUOJANT ITS DARBOTVARKĘ GRAŽVYDAS JAKUBAUSKAS Konferencija Intelektinės tra

Printing triistr.wxmx

NACIONALINIS KIBERNETINIO SAUGUMO CENTRAS Tel El. p. NACIONALINIS KIBERNETINIO SAUGUMO CENTRAS PRIE KRAŠTO APSA

Autorinė sutartis Nr

Projektas

Lithuanian translation of Induction of labour - Information for pregnant women, their partners and families Gimdymo sužadinimas Informacija nėščiosiom

LIETUVOS RESPUBLIKOS SOCIALINĖS APSAUGOS IR DARBO MINISTRAS ĮSAKYMAS DĖL LIETUVOS RESPUBLIKOS SOCIALINĖS APSAUGOS IR DARBO MINISTRO 2009 M. RUGPJŪČIO

P. Kasparaitis. Praktinė informatika. Skriptų vykdymas ir duomenų valdymas Skriptų vykdymas ir duomenų valdymas Įvadas Skripto failas tai M

airbnb-pwc-taxguide-lithuania-lt

Microsoft PowerPoint - WACC ir BU-LRAIC klausimyno pristatymas ppt

Rodiklio pavadinimas Data

PATVIRTINTA Lietuvos banko valdybos 2011 m. rugsėjo 1 d. nutarimu Nr (Lietuvos banko valdybos 2015 m. gegužės 28 d. nutarimo Nr redakci

CPO veiklos rezultatų ir finansinės naudos VALSTYBEI vertinimo ATASKAITA

UAB NAUJASIS TURGUS PREKYBOS VIETŲ KAINOS NUSTATYMO METODIKA UAB Naujasis turgus užsakymu parengė UAB Eurointegracijos projektai Vilnius,

Projektas

UAB AMEA Business Solutions Praktiniai IT Sprendimai smulkioms ir vidutin ms mon ms Direktor, Jurgita Vitkauskait , K

Rekomendacijos vietinės reikšmės kelių su žvyro danga taisymui

Transkriptas:

KAUNO TECHNOLOGIJOS UNIVERSITETAS INFORMATIKOS FAKULTETAS VERSLO INFORMATIKOS KATEDRA Algirdas Žukauskas, Nerius Lukšys Tarpląstelinio sąveikavimo imitacinio modelio optimizavimas ir tyrimas Magistro darbas Darbo vadovas Prof. habil. dr. H. Pranevičius Kaunas, 200

KAUNO TECHNOLOGIJOS UNIVERSITETAS INFORMATIKOS FAKULTETAS VERSLO INFORMATIKOS KATEDRA Algirdas Žukauskas, Nerius Lukšys Tarpląstelinio sąveikavimo imitacinio modelio optimizavimas ir tyrimas Magistro darbas Recenzentas Darbo vadovas 200-05-24 200-05-24 Prof. habil. dr. H. Pranevičius Atliko IFM-4/ gr. stud. Algirdas Žukauskas Nerius Lukšys 200-05-24 Kaunas, 200 2

Santrauka Darbe yra nagrinėama tarpląstelinių plyšinių ungčių modeliavimo sistema (GJM Gap Juncion Model, sukurta N. Paulausko - Kauno technologios universiteto, informatikos fakulteto magistrantas). Pagrindinis tyrimo obektas yra optimizavimo uždavinys. Viename iš sistemos modulių, pasinaudoant globalaus optimizavimo metodais, yra ieškoma modelio parametrų, su kuriais modelio ir realių eksperimentų (gautų iš sistemos užsakovų Niuorko, Yeshiva universiteto, Alberto Einšteino medicinos koledžo laboratorios (prof. Felikso Bukausko)) rezultatai skirtųsi minimaliai arba sutaptų. Šiuo atveu yra modeliuoama tarpląstelinių plyšinių ungčių laidumo priklausomybė nuo įtampos t.y imituoami elektro-fiziologiniai procesai. Optimizuoant modelio parametrų paiešką, darbe buvo surinkti rezultatai (atliko Nerius Lukšys), modeliuoant su skirtingu skaičiumi iteracių bei parenkant skirtingus optimizavimo metodus, realizuotus kitoe sistemoe. Buvo konsultuoamasi su akademiku habil. dr. prof. Jonu Mockumi. Iš gautų rezultatų įvertinamos metodų silpnosios ir stipriosios pusės bei ų pritaikymas Grid sistemai. Darbo tikslas, remiantis analizės rezultatais, realizuoti modelio parametrų paiešką Grid sistemoe (atliko Algirdas Žukauskas), panaudoant kelis optimizavimo metodus bei palyginti gautus rezultatus. 3

Summary In this research we analyze optimization of cells gap unctions simulation model (GJM Gap Junction Model, designed by N. Paulauskas Kaunas University of Technology student). The main obect of study is the optimization problem. In one module of the system, using global optimization methods, is looking for the model parameters to which the model and real experiments (obtained from the New York, Yeshiva University, Albert Einstein College of Medicine Laboratory (prof. Felikso Bukausko)) results differ minimally or overlap. In this case, we are simulating cells gap unction voltage dependence of conductivity (simulating electro-physiological processes). Optimizing the model parameters of the search were collected at the results of simulation with different number of iterations (solved by Nerius Lukšys), and the choice of different optimization methods, realized in another system. There was consulting with academic habil. dr. prof. Jonas Mockus. The results showed methods weak and strong points and their application in Grid systems. The purpose of this problem was to implement gap unction simulation model on the Grid system (solved by Algirdas Žukauskas). Use several optimization methods and compare the results. 4

Terminų ir santrumpų žodynėlis GJM (angl. Gap Juncion Model) Tarpląstelinio sąveikavimo modelis; GRID tinkle suungti kompiuteriai, naudoami moksliniams bei techniniams tyrimams atlikti; MPI (angl. Message Passing Interface) tai komunikacinių paprogramių bibliotekos (MPL) standartas. JDL (angl. Job Description language) tai specialiai skirta GRID sistemoms sisteminė kalba skirta aprašyti skaičiavimus, darbo stotis ir kitus resursus; PE procesoriaus elementas; AE atminties elementas; VO - Virtuali organizacia. Tai vartotoų grupė, kuriai suteikta teisė leisti darbus tam tikrame Grid resursų rinkinye 5

Turinys. Įvadas... 7 2. Tarpląstelinių plyšinių ungčių modelio analizė... 7 2. Tikslai ir siekiami rezultatai... 7 2.2 Neurono sandara... 8 2.3 Nervinis impulsas ir o sklidimas... 9 2.4 Tarpląstelinės plyšinės ungtys... 0 2.5 Dvieų vartų modelis... 2.6 Agregatinis modelis... 3 3. Modelio parametrų optimizavimas... 7 3. Globalus optimizavimo uždavinys... 8 3.2 Optimizavimo metodai... 8 3.2. Monte Carlo metodas... 8 3.2.2 Bayes o metodas ir o modifikacios... 20 3.3 Eksperimentinė dalis... 22 3.4 Eksperimentų rezultatai... 3 4. Lygiagrečių skaičiavimų technologios... 3 4. Asimetrinės technologios... 3 4.2 MPI (Message Passing Interface)... 32 4.2. MPI tiesioginė komunikacia... 34 4.2.2 MPI kolektyvinė komunikacia... 35 4.3 Grid sistemos... 36 4.3. JDL... 37 4.3.2 Skaičiavimų paleidimas BalticGrid gride... 38 5. Lygiagretaus skaičiavimo realizacia paieškos modelio programos kode... 4 5. MPI bibliotekos pritaikymas (modeliui su Monte Carlo metodu)... 4 5.2 MPI bibliotekos pritaikymas (modeliui su Bayes metodu)... 44 6. Modelio greitaeigiškumo analizė... 46 7. Išvados... 53 8. Literatūra... 54 6

. Įvadas Tarpląstelinės plyšinės ungtys (ungtys tarp neuronų) yra mažai ištirtos, yra daromos įvairios prielaidos, bei kuriami teoriniai matematiniai modeliai, kurie paaiškintų ląstelių kontaktavimą plyšinėmis ungtimis. Šiame darbe nagrinėamos GJM sistemos vienas iš modulių parametrų paieška t.y. modeliuoama laidumo, plyšinėse ungtyse, priklausomybė nuo įtampos. Jų radimas pagrįstas globalaus optimizavimo metodais, kuriems užduodamos parametrų galimos kitimo ribos. Tiriama (modeliuoama) tarpląstelinių plyšinių ungčių laidumo priklausomybė nuo įtampos. Gauti duomenys lyginami su realiais eksperimentų rezultatais. Tikimasi rasti atitikmenis. Sistemoe modeliuoant elektro-fiziologinius procesus yra ieškoma vidutinė kvadratinė paklaida tarp modelio ir eksperimentų rezultatų. Šiuo metu, kad būtų gauta kuo mažesnė paklaida reikalingas didelis skaičius iteracių, o tai įtakoa modelio parametrų paieškos greitį. Tad, šioe sistemoe, skaičiavimų greitaeigiškumo klausimas tampa aktualus. Šiuolaikiniai kompiuteriai yra paėgūs per pakankamai trumpą laiką išspręsti daugelį uždavinių, tačiau šio atveu, gali užrukti valandas ar net paras. Šiame darbe nagrinėami globalaus optimizavimo metodai, lygiagrečių skaičiavimų bibliotekos, ų architektūros, privalumai ir trūkumai, nustatomos potencialios modelio programinio kodo lygiagretinimo vietos. Darbo tikslas yra GJM programos parametrų paieškos modelio greitaeigiškumo optimizavimas. 2. Tarpląstelinių plyšinių ungčių modelio analizė 2. Tikslai ir siekiami rezultatai Modeliuoant tam tikrų obektų elgsenas kompiuterye yra siekiama, kad modelis atitiktų realaus pasaulio obekto elgsenas. Modelis palengvina ir pagreitina įvairius skaičiavimus susiusius su realiu obektu. Tokiu būdu galima lengvai ir greitai numatyti ar įvertinti kaip realaus pasaulio obektas reaguos į vienokias ar kitokias sąlygas (pakeitimus). Pvz. sumodeliuotoe stogo konstrukcioe (įvertinus fizikines medžiagų savybes) galima būtų lengvai patikrinti ar stogo konstrukcia atlaikys tam tikrą svori ar geriau keisti stogo dangą į lengvesnę ir pan. Aišku tai, kad realiai tikrinti ar stogas atlaikys ar ne, būtų išnaudoti dideli laiko bei kaštų resursai, nekalbant au ir apie riziką. Imitacia, sukurta kompiuterio, tapo naudinga ne tik statybos sritye, bet ir chemioe, fizikoe, biologioe ir kitose mokslo srityse. Imitacinis modeliavimas ne išimtimi tapo ir tarpląstelinėe 7

plyšinėe ungtye. Yra daromos įvairios prielaidos, bei kuriami teoriniai matematiniai modeliai, kurie paaiškintų ląstelių kontaktavimą plyšinėmis ungtimis. Šios analizės tikslas išsiaiškinti GJM imitacinėe sistemoe sukurto globalaus parametrų optimizavimo modelio veikimą. Išnagrinėti kitus metodus, kuriuos būtų galima pritaikyti nagrinėamam uždaviniui spręsti, taip pat išnagrinėti modelio pritaikomumą lygiagrečioms sistemoms. Palyginti gautus rezultatus. 2.2 Neurono sandara Tiriamasis obektas, šiuo atveu neuronas, yra sudėtingas biologinis darinys, ties kurio dirba daugybę mokslininkų, bandydami išsiaiškinti ame vykstančius procesus, kažkokiais tiksliais apskaičiavimais, formulėmis, patirtimi, stebėimais, bandymais ar galu gale spėimais. Nervų sistemą sudaro nervinės ląstelės neuronai. Jie turi kūną ir ataugas. Įprastas neuronas pavaizduotas (žr. 2.2- pav). Trumpesnės, nervinius impulsus perduodančios į neurono kūną, ataugos dendritai, ilgesnės aksonai, arba neuritai, perduodantys impulsą iš neurono kūno. Jungtis tarp dvieų neuronų sinapsė. Dažniausios sinapsės būna tarp vieno neurono aksono ir kito neurono dendrito, bet egzistuoa ir kitokio tipo sinapsių. 2.2- pav. Biologinio neurono sandara 8

2.3 Nervinis impulsas ir o sklidimas Tais pačiais nervais impulsai vienu metu gali būti perduoti net keliomis kryptimis. Juntamųų arba receptorinių bei udinamųų (motorinių) neuronų veikla yra darni, koordinuota ir sukelia organizmo atsakomąą reakcią į dirgiklį automatiškai, pavyzdžiui, prie karšto paviršiaus pridėta ranka tuoau atitraukiama, net nespėus to suvokti. Kontakto vietose neuronų ląstelių membranos nesusiliea, tarp ų visada yra nedidelis tarpas sinapsinis plyšys (2.3- pav.): 2.3- pav. Sinapsinis perdavimas Sinapsinio nervinio impulso sklidimo etapai: Nervinis impulsas pasiekia presinapsinę skaidulos dalį. Atsidaro kalcio kanalai, Ca++ patenka į presinapsinę citoplazmą. Presinapsinėe citoplazmoe pastoviai yra didelis kiekis sinapsinių burbuliukų nešančių neiromediatorių. Neiromediatorius uždaro grandinę, vykdydamas cheminį informacios perdavimą per sinapsinį plyšį. Dėl patekusių Ca++ onų, presinapsinės citoplazmos burbuliukai sprogsta, išpurškiant mediatorių į sinapsinį plyšį. Patekęs į plyšį mediatorius difunduoa į postsinapsinę plyšio pusę. Receptoriai, esantys postsinapsinėe plyšio pusėe pagauna mediatoriaus molekules. Padidėa kanalo laidumas Na+ ir K+ onams abeomis kryptimis. Kanalų atidarymas postsinapsinėe plyšio pusėe, iššaukia natrio onų srautą į vidų, o kalio į išorę. Atsiradusi oninė srovė sužadina nervinį impulsą, kuris sklinda toliau. 9

2.4 Tarpląstelinės plyšinės ungtys Koneksinai (Cx) tai baltymai, kurie formuoa tarpląstelines plyšines ungtis kontakte tarp kaimyninių ląstelių membranų (žr. 2.4- pav.). Koneksinas yra pavaizduotas 2.4-2. pav. Plyšinės ungtys leidžia suungtoms ląstelėms perduoti elektrinius ir metabolinius signalus. 2.4- pav. Susidariusios tarpląstelinės plyšinės ungtys Kiekvienas plyšinės ungties kanalas (žr. 2.4-2 pav. - Tarpląstelinis kanalas) sudarytas iš dvieų puskanalių (žr. 2.4-2 pav. - Koneksonas) kurie savo ruožtu yra sudaryti iš šešių Cx koneksinų. Tarpląstelinėe sąveikoe dalyvauančios plyšinės ungtys gali būti homotipinės (ląstelės išreiškia tą patį Cx izotipą), heterotipinės (ląstelės išreiškia skirtingus Cx izotipus) ir heteromerinės (bent viena ląstelė išreiškia du ar daugiau Cx izotipus). PJ kanalai skiriasi elektriniu laidumu, selektyviu pralaidumu, įvairiomis cheminėmis medžiagomis ir kanalų vartų autrumu įtampai. 2.4-2 pav. Susidariusios tarpląstelinės plyšinės ungtys Koneksinai vadinami tapačiais, eigu ie gali sudaryti funkcinius heterotipinius plyšinės ungties kanalus. Dauguma Cx porų gali sudaryti funkcines plyšines ungtis, bet egzistuoa kai 0

kurios išimtys. Pavyzdžiui: du pagrindiniai širdies koneksonai, Cx40 ir Cx43, kurie yra ekspresuoti širdye ir krauagyslėse, nėra tapatūs ir negali sudaryti funkcinių plyšinies ungties kanalų Bendra plyšinės ungties savybė būdinga visiems Cx koneksinams yra kanalo vartų būsenos priklausomybė nuo įtampos. Jungties laidumas mažėa sudarius tarpląstelinės plyšinės ungties potencialą,. Manoma, kad kiekvienas puskanalis turi du skirtingus vartų valdymo mechanizmus: lėtus, kuris uždaro PJ pilnai ir greitus, kuris perveda vartus į pereinamą būsena ar būsenas su liekamuou laidumu. Laikome, kad kiekvienas puskanalis gali būti dvieose būsenose: atviroe su laidumu ir uždarytoe su laidumu. Vartų valdymo mechanizmai gali skirtis poliariškumu, tai yra vartai gali užsidaryti arba atsidaryti, eigu citoplazmos pusėe potencialas didėa arba mažėa. Jeigu puskanalių vartai turi priešingą poliariškumą, vienas poliariškumas atidarys abu puskanalius, o priešingas potencialas uždarys abu puskanalius. 2.4-3 pav. pavaizduota pagrindinė schema, kuria buvo sudaromos perėimo tikimybės iš [5] literatūros straipsnio: 2.4-3 pav. Kanalo būsenų modelio schema Čia K i (i =, 2, 3, 4) yra perėimo procesų proporcingumo konstantos. Kanalas gali būti vienoe iš keturių galimų būsenų: ) O(oo), kurioe abu kanalo galai yra atidaryti, 2) C (co), kurioe kanalo galas L yra uždarytas, o R - atidarytas, 3) C 2 (oc), kurioe kanalo galas L yra atidarytas, o R uždarytas, 4) C 3 (cc), kurioe abu kanalo galai yra uždaryti. 2.5 Dvieų vartų modelis Žemiau pateiktas dvieų vartų modelis, kurio pagrindu buvo realizuota sistema. Nagrinėsime tik šį modelį, nes sistemoe parametrų paieška yra realizuota tik dvieų vartų modeliui. Šis modelis sudarytas iš dvieų nuosekliai suungtų vartų a ir b (2.5- pav.), kurių kiekvienas turi savo kintantį laidumą. Kiekvienas vartas gali būti atviroe arba uždaroe būsenoe.

2.5- pav. 2 vartų modelio struktūra Kiekvienas kanalo vartas apibūdinamas šiais parametrais: - perėimo konstanta, reguliuoanti varto būsenų kitimą, - įtampos autrumo koeficientas, - įtampos koeficientas, - atidaryto varto laidumo funkcia nuo įtampos, - uždaryto varto laidumo funkcia nuo įtampos. Vartai gali būti vienoe iš dvieų būsenų: arba, kur atviri vartai, uždari vartai. Vartų būsenų kitimas vyksta diskrečiais laiko momentais,,,, kur - modeliavimo laiko trukmė. Vartų būsenų kitimas parodytas 2.5-2 pav. Perėimo tikimybės priklauso nuo vartų būsenos ir įtampos,, :,,,,,,. 2.5-2 pav. Vartų būsenų grafas 2

Vartų laidumas priklauso nuo vartų būsenos ir pridėtos įtampos : ; Čia varto laidumo funkcia, - varto būsena, - pridėta įtampa. Vidutinis kanalų laidumas: ; Čia - kanalo laidumas laiko momentu, kanalų skaičius, - - too kanalo -ų vartų laidumas. Sudarytas modelis leidžia paskaičiuoti sistemos laidumą laiko momentais,,,. 2.6 Agregatinis modelis 2.6- pav. Agregatinės sistemos schema 2... k k+ k+ 2 R= 2... 2 2... k k+ H = k+ 2............ 2k...... 2k k 3

Agregato A 0 aprašymas Išėimo signalų aibė Y = { y, y2,..., yk}, y čia i - išduodama įtampa, i =, k. Vidinių įvykių aibė E '' = { e'' }, čia e'' y - išduodamas i signalas, i =, k. Valdymo sekos e' ' { t}, čia t - laiko kitimo žingsnis. ν t ) { ( Diskrečioi agregato būsenos dedamoi m = V t ( m )}, čia V( t m ) - įtampa tm laiko momentu. Tolydžioi agregato būsenos dedamoi z ( tm) = { w( e'', tm)} ν, čia w ( e '', t m) - signalo išdavimo pabaigos momentas. Pradinė būsena Parametrai: t = 0 0, z( t 0 ) = {0, t}. V( t ) : T l l R Perėimo ir išėimo operatoriai H( e'' ) : ν( tm + ) = V( tm + ), tm+ t = tm +, w e'', t = t + ) G( e'' ) : y ( m+ m t. i = m+ V( t ), i,k =. 4

Agregato A i, i=, k aprašymas Įėimo signalų aibė X= { x }, čia x - paduodamos įtampos reikšmė. Išėimo signalų aibė Y= { y }, čia y - kanalo laidumo reikšmė. Išorinių įvykių aibė E= ' { e' }, čia e' - atėo x signalas. ν ( t m) = { Sa ( tm ), tm, ga ( tm )} Diskrečioi būsenos dedamoi, =,4, čia Sa ( t m ) a - t vartų būsena m laiko momentu, ga ( t m ) a - vartų laidumas. Pradinė būsena Parametrai: t = 0 0 ν( t ) {,,,,0}, 0 = a a a a κ - vartų perėimo koeficientas, =, 4, A - vartų autrumo koeficientas, =, 4, V 0 - įtampos koeficientas, =, 4, Ga (v) - atidaryto vartų laidumo funkcia, =, 4, Gu (v) - uždaryto vartų laidumo funkcia, =, 4. Perėimo ir išėimo operatoriai H( e' ) : Sa ( t m+ a, ei ( Sa ( tm ) = a) ( ξ Paa ( tm+ )) u, ei ( Sa ( tm ) = a) ( Paa ( tm+ ) < ξ ) ) = a, ei ( Sa ( tm ) = u) ( ξ Pua ( tm+ )) u, ei ( Sa ( tm ) = u) ( Pua ( tm+ ) < ξ ) 5

Va ( t ga ( t ) x m+ = 4 m+ G( e' ) : y = 4 Ga ) = Gu ga k ( t k= m+ ga ( t m+ ga ( t ) k= k m+ ( Va ( t ( Va ( t ). m+ m+ ) )), ei Sa ( t )), ei Sa ( t Perėimo ir išėimo operatoriai H( e' ) : Sa ( t Va ( t m+ G( e' ) : m+ m+ ) = a ) = u a, ei ( Sa ( tm ) = a) ( ξ Paa ( tm+ )) u, ei ( Sa ( tm ) = a) ( Paa ( tm+ ) < ξ ) ) = a, ei ( Sa ( tm ) = u) ( ξ Pua ( tm+ )) u, ei ( Sa ( tm ) = u) ( Pua ( tm+ ) < ξ ) ga ( t m+ ) ) x ga ( t ) m+ = 4 ga ( t y = m+ 4 k= k m+ Ga ) = Gu ga k ( t k= m+ ( Va ( t ( Va ( t ). m+ m+ )), ei Sa ( t )), ei Sa ( t m+ m+ ) = a ) = u A Agregato k+ Įėimo signalų aibė X = x, x,..., x }, { 2 k aprašymas x čia i - i-too kanalo laidumas, i =, k. Išėimo signalų aibė Y= y }, { čia - išduodamas laidumas. Išorinių įvykių aibė E= { e', e',..., e' }, ' 2 k 6

čia e' x i - atėo i signalas. Diskrečioi agregato būsenos dedamoi ν t ) = { G ( t ), G ( t ),..., G ( t )}, ( m m 2 m k m čia G i ( t m ) - i-too kanalo laidumas t m - laiko momentu, i =, k. Pradinė būsena t0 = 0, ν( t0) = {0,0,...,0} H( e' ) : G t ) = G ( t + x G( e' ) : i ( m+ i m) G( t ) k i= m+ = G ( t i n m ) i t =, kai m t m+ Perėimo ir išėimo operatoriai 3. Modelio parametrų optimizavimas Vienas iš sukurtos sistemos (GJM Gap Juncion Model, sukurta N. Paulausko - Kauno technologios universiteto, informatikos fakulteto magistrantas) uždavinių yra pagrįsti įvairias tarpląstelinių plyšinių ungčių kontaktavimo prielaidas pasinaudoant eksperimento bei imitavimo rezultatais. Todėl yra svarbu automatizuoti šį procesą, tai yra pasinaudoant eksperimentiniais rezultatais surasti imitacinės sistemos atitikmenį ir os įėimo parametrus. Sistemos parametrų paieška yra labai svarbus uždavinys šioe sistemoe. Ji padėtų pagrįsti įvairias prielaidas ir surastų nežinomus parametrus įvairiems kanalų tipams. Tarkime mes turime eksperimentinius nufiltruotus duomenis (3. pav. raudona kreivė) ir imitavimo rezultatus su tam tikrais įėimo parametrais (3. pav. - mėlyna kreivė). Mums reikia rasti imitavimo parametrus su kuriais imitavimo ir eksperimento kreivių skirtumo kvadratas bus mažiausias. 7

3. Pav. Eksperimentiniai duomenys Į šį uždavinį galima žiūrėti kaip į funkcios aproksimavimą, t.y. regresią, kai reikia surasti nežinomos funkcios parametrus pagal taškų aibę. Sistemoe realizuota galimybė, kuri randa mažiausią skirtumo kvadratą tarp eksperimentinių duomenų ir imitacinės sistemos. Žemiau pateikėme suformuluoto uždavinio formalią specifikacią: P = i { P P P } i, i 2,..., i 8, čia i i-toi iteracia l P, u ), e u ), čia K=,, N eksperimentų skaičius i ( i i N K= ( K 2 ε = ( l ( P, u ) e( u )), i i K K čia P i i tosios iteracios parametrų rinkinys, l i i tosios iteracios laidumas, ui - i-tosios iteracios įtampa, e - eksperimentas, u K eksperimento įtampa, - skirtumo kvadratas. 3. Globalus optimizavimo uždavinys Funkcios parametru radimas buvo realizuotas pasitelkus globalaus optimizavimo algoritmus. Tokio tipo algoritmai yra naudoami įvairiems optimizavimo uždaviniams spręsti (Mokyklos tvarkaraščių sudarymas, keliauančio pirklio uždavinys, ir pan.). Iš šių algoritmų realizaciai buvo pasirinkti,,exkor,,,bayes ir Monte Carlo algoritmai. 3.2 Optimizavimo metodai 3.2. Monte Carlo metodas Šis skaičiavimo algoritmas, pagrįstas statistiniu modeliavimu ir gautų rezultatų apdoroimu statistiniais metodais. Šis metodas leidžia brangiai kainuoančius bandymus pakeisti modeliavimu 8

kompiuteriais ir labai sumažina tyrimų trukmę. Monte Karlo metodai dažniausiai naudoami fizikinių ir matematinių sistemų modeliavimui, kai neįmanoma gauti tikslių rezultatų naudoant deterministinį algoritmą. Norint atlikti labai sudėtingą skaičiavimą, reikalauantį ištyrinėti didelę duomenų erdvę, galima tą patį skaičiavimą atlikti tik su keletu atsitiktinai pasirinktų duomenų. Atsitiktinai parinkti duomenys dažniausiai būna tipiški, todėl natūralu tikėtis, kad ir atliktas skaičiavimas ne itin daug skirsis nuo tikslaus. Pavyzdžiui, nežinodami kaip apskaičiuoti apskritimo, nubrėžto kompiuterio ekrane, plotą, galėtume atsitiktinai išdėlioti keliasdešimt taškų. Suskaičiavę, kokia dalis taškų pateko į apskritimą, galėtume apytiksliai pasakyti ir o plotą. Žinoma, tam turime suprasti, kaip generuoami atsitiktiniai taškai. Norint atlikti išėimo parametro reikšmių išsibarstymo tyrimą, reikia turėti ryšio funkcią y = f(x, x 2,, x n ). Tikslumo tyrimas susideda iš tokių etapų:. Modeliuoami elementų parametrų skirstiniai W(xi); 2. Skaičiuoamos išėimo parametro y reikšmės, esant atsitiktinėms xi reikšmių kombinacioms, atitinkančioms w(xi) dėsnius, t. y. modeliuoamas kūrybinis procesas; 3. Modeliavimo rezultatai apdoroami statistiniais metodais. Šio apdoroimo tikslas yra įvertinti skaitines išėimo parametro charakteristikas (vidutinę reikšmę ir dispersią D(y), nustatyti išėimo parametro skirstinį w(y) arba surasti tikimybę, kad išėimo parametro reikšmės bus duotosiose ribose, kintant elementų parametrų reikšmėms pagal skirstinius. Tiriant išėimo parametrų tikslumą statistinių bandymų metodu, reikalingos elementų parametrų atsitiktinės reikšmės. Šių reikšmių modeliavimui naudoami atsitiktinių skaičių generatoriai. Didžiausią praktinę reikšmę turi vienodos tikimybės skaičiai intervale [0, ]. Skaičiai su kitokiais norimais skirstiniais w(x) gaunami naudoant vienodos tikimybės skaičius ir sprendžiant lygtį parametro x atžvilgiu, esant įvairioms tikimybės P reikšmėms: (0 P ) []. Tokiu būdu gaunami pseudoatsitiktiniai skaičiai xi, pasiskirstę pagal skirstinį w(xi). Naudoami ir kitokie atsitiktinių skaičių gavimo būdai. Visos šiuolaikinės elektroninės skaičiavimo mašinos turi programas, leidžiančias generuoti pseudoatsitiktinius skaičius, pasiskirsčiusius pagal norimą skirstinį. Nepriklausomai nuo atsitiktinių skaičių gavimo būdo apie ų kokybę galima spręsti iš gauto statistinio skirstinio sutapimo su norimu teoriniu skirstiniu. Apie skirstinių sutapimo laipsnį 9

sprendžiama iš sutapimo kriterių. Praktikoe plačiausiai naudoami Pirsono ir Kolmagorovo sutapimo kriteriai [0]. Statistinių bandymų metodo pagrindiniai privalumai yra šie: Galima tirti išėimo parametrų tikslumą, esant bet kokiems elementų parametrų skirstiniams; Galima gauti rezultatus su norimai maža paklaida; kai bandymų skaičius N artėa prie begalybės, skaičiavimų paklaida artėa prie nulio; Galima paskaičiuoti kiekybines išėimo parametrų charakteristikas (vidutinę reikšmę, dispersią), rasti skirstinį w(y) arba tikimybę, kad išėimo parametras bus duotose ribose; Palyginus su natūrinių bandymų metodu, atsitiktinių bandymų metodas reikalaua mažai lėšų ir laiko išėimo parametrų y tikslumo tyrimui atlikti. Statistinių bandymų metodo trūkumas sunku generuoti tarpusavye priklausomų atsitiktinių dydžių reikšmes, t. y. sunku tyrinėti tikslumą, kai elementų parametrai yra priklausomi atsitiktiniai dydžiai [2]. 3.2.2 Bayes o metodas ir o modifikacios Tradicinė skaitinė analizė apibrėžia optimizavimo algoritmus, kurie garantuoa tam tikrą visų optimizuoamų funkcių tikslumą. Tai apima tikslius algoritmus. Tai yra blogiausio atveo analizė. Norint apriboti klaidų skaičių reikia daugiau skaičiavimo bandymų, dažniausiai didėančių eksponentiškai. Tai pagrindinis blogiausio atveo analizės trūkumas. Kaip alternatyva yra naudoama vidutinio atveo analizė. Čia vidutinė paklaida neapriboama, bet sumažinama tiek kiek įmanoma. Vidurkis imamas optimizuoamų funkcių rinkiniui. Tokia vidutinio atveo analizė vadinama Bayes'o metodu [9]. Bayes'o optimizacios taikymui yra keli būdai. Pirmasis yra tiesioginis Bayes'o algoritmas. Jis apibrėžiamas fiksuoant ankstesnio išsibarstymo P funkcių f(x) rinkiniui ir minimizuoant Bayes'o rizikos funkcią. Rizikos funkcia R(x) yra planuoamas skirtumas iš globalaus minimumo fiksuotame taške x. P išsibarstymas yra apgalvotas kaip stochastinis modelis funkciai f(x), x R, kur f(x) gali būti determinuota arba stochastinė funkcia. Gauso atveu, laikant kad (n+) stebėimas yra paskutinis R( x) = x 2πs ( x) n + min( c, z) e n y mn ( x) ( ) 2 s ( x) n 2 dz 20

Čia c n = min i z i -, z i = f(x i ). m n (x) yra sąlyginė tikimybė atsižvelgiant į stebėimų reikšmes z i, i =,, n. s 2 n (x) yra sąlyginis pasiskirstymas ir ε> 0yra taisymo parametras. Rizikos funkcios R(x) minimumas yra surandamas taške: x n+ sn( x) = arg max x m ( x) c Tiesioginio Bayes'o algoritmo tikslas, naudoamas daugeliu atveų, yra pateikti kiek įmanomai mažą paklaidą laikantis konvergavimo sąlygų. Wienerio procesas yra bendras stochastinis modelis vienmačiu atveu m =. Šis modelis laiko, kad skirtumai f(x 4 ) f(x 3 ) ir f(x 2 ) f(x ), x <x 2 <x 3 <x 4, yra stochastiškai nepriklausomi. Čia f(x) yra Gauso ( 0, σx) kiekviename fiksuotame x > 0. Taip pat šis modelis yra išplėstas į daugiamatį atveį. Tačiau paprasti apytiksliai stochastiniai modeliai pageidautini, ei m >. Apytiksliai modeliai yra suproektuoti pakeičiant tradicines Kolmogorovo tikslumo sąlygoms. Šios sąlygos reikalaua n-too laipsnio matricų inversios, kad surasti lyginę tikimybę m n (x) ir pasiskirstymą s n 2 (x). Keičiant įprastas tikslumo sąlygas (rizikos funkcios R(x) tęstinumu, xn konvergavimu iki globalaus minimumo, išraiškų mn(x) ir sn(x) supaprastinimu) R(x) išraiška apskaičiuoama naudoant formulę: n n R 2 x xi ( x) = min zi min i n i n z i c n Kitas būdas yra Bayes'o euristinis metodas. Jis fiksuoa ankstesnį pasiskirstymą P pagalbinėms funkcioms fk(x). Šios funkcios apibrėžia geriausias reikšmes gautas K kartų, naudoant kokią nors euristiką h(x). Laikoma, kad euristika h(x) priklauso nuo tęstinių parametrų m n x R. Euristika padeda optimizuoti originalią funkcią C(y) kintamiesiems y R, kur m < n. Paprastai, komponentai y yra diskretinės reikšmės. Euristika yra paremta ekspertų nuomonėmis apie sprendimo prioritetus. Bayes'o euristinis metodas naudoamas optimizuoant funkcias su dideliais kintamųų skaičiais. Tai daugelio diskretinių optimizavimo problemų atveai. Ekspertų nuomonėmis pagrįstos euristikos dažnai įtraukia atsitiktinių skaičių generavimo procedūras. Bayes metodo modifikacia Beyes o modifikacia vadinamas Exkor metodas, kuris atlieka daugiamatę paiešką. Paieška prasideda nuo pradinio taško. Optimizavimas atliekamas, naudoant Wiener modelį, atskirai keičiant kintamuosius. Pirmasis ciklas:. 2

x n+ n x = arg min f ( x, x2,..., x n + 2 = x n m ), n+ n arg min f ( x, x2, x3,..., x x 2... n m ), x n + m = arg min xm f ( x n+, x n+ 2,..., x n+ m,..., x m ). Jei n+ x = x n exkor metodas baigia darbą, priešingu atveu vykdomas kitas ciklas: x n+ 2 = arg min x f ( x, x n+ 2,..., x n+ m ), x n+ 2 2 = arg min x2 f ( x n+ 2, x 2, x n+ 3,..., x n+ m ),... x n+ 2 m = arg min xm f ( x n+ 2, x n+ 2 2,..., x n+ 2 m,..., x m ). Čia argmin x i žymi kintamoo xi vertę, gautą naudoant Wiener optimizavimo algoritmą [8]. Metodas konverguoa traukos taške priklausomai nuo pradinio taško. Tam tikras ε -tikslumas gaunamas optimizuoant monotonišką transformacią v ( f ( x)) : m v( f ( x)) = vi ( xi ) + ε v0 ( x). i= Čia ε > 0, komponentas v ( ) priklauso nuo visų kintamųų, komponentas x ) 0 x v priklauso ( i i nuo vieno kintamoo x i. Pavyzdžiui, ei v ( f ( x)) = f ( x), tai f ( x) = fi ( xi ) + ε f0 ( x). Jei m i= m 0 i= v ( f ( x)) = log f ( x), tai f ( x) = ε f ( x) f i ( x i ). 3.3 Eksperimentinė dalis Pagrindinis eksperimento tikslas yra palyginti skirtingus globalaus optimizavimo algoritmus realizuotus sistemoe bei interneto svetainėe realizuota programa [7]. Globalaus optimizavimo arba paieškos eksperimentai yra labai svarbūs šiame darbe. Visų pirma, pabandysime surasti realių eksperimentų atitikmenis. Realūs eksperimentų duomenys buvo gauti iš užsakovų. Prieš tai ie buvo nufiltruoti t.y. dalinai panaikintas triukšmas, tuo tikslu, kad būtų gauti kuo tikslesni globalaus optimizavimo rezultatai (žr. 3.3 pav.). Plona linia vaizduoa gautus duomenis, o paryškinta vaizduoa filtravimą pritaikius slenkantį kablelį. 22

3.3- pav. Eksperimentiniai duomenys Visų pirma atliksime eksperimentus su optimizavimo uždavinio realizacia Java programavimo kalboe. Šioe versioe programa papildyta kitais algoritmais ( Monte Karlo bei Bayes ) [7]. Naudosime pradinius duomenis, su tikslu įvertinti paieškos tikslumą, bei skaičiavimo laiką. Galiausiai eksperimentuosim su tokiais pat duomenimis GJM sistemoe, kuriems bus taikytas minimalus filtravimas (3.3- pav.). Eksperimentai su Monte Karlo algoritmu Taigi, pirmų eksperimentų pradiniai duomenys parinkti tokie, kad būtų kuo mažiau triukšmų (plona raudona linia žemiau pateiktuose grafikuose). Pirmuou eksperimentu buvo bandomas Monte Karlo metodas Mg. Gauti rezultatai: 3.3-2 pav. Bandymo grafikas su optimaliu parametrų rinkiniu, gautu atlikus 000 iteracių 3.3-3 pav. Bandymo grafikas su optimaliu parametrų rinkiniu, gautu atlikus 2000 iteracių 23

3.3-4 pav. Bandymo grafikas su optimaliu parametrų rinkiniu, gautu atlikus 3000 iteracių 3.3-5 pav. Bandymo grafikas su optimaliu parametrų rinkiniu, gautu atlikus 4000 iteracių 3.3-6 pav. Bandymo grafikas su optimaliu parametrų rinkiniu, gautu atlikus 5000 iteracių 3.3-7 pav. Bandymo grafikas su optimaliu parametrų rinkiniu, gautu atlikus 0000 iteracių Atliekant bandymus buvo įvertintas skirtumo kvadratas tarp modeliavimo ir eksperimentų rezultatų (skirtumo kvadratas nuo iteracių skaičiaus): 3.3-8 pav. Mig(Java) metodo modeliavimo ir eksperimentų rezultatų palyginimas (ԑ priklausomybė nuo iteracių skaičiaus) 24

Iš gautų duomenų brėžiamas laiko priklausomybės nuo iteracių skaičiaus grafikas: 3.3-9 pav. Mig(Java) metodo modeliavimo ir eksperimentų rezultatų palyginimas ( laiko priklausomybė nuo iteracių skaičiaus) Iš rezultatų galime teigti, kad algoritmas veikia palyginus greitai ir duoda neblogą rezultatą. Silpnoi algoritmo puse yra ta, kad is pagrįstas atsitiktinio ieškoimo principu. Kiekvieną kartą algoritmas gali rasti skirtingą rezultatą su tuo pačiu iteracių skaičiumi. Taip pat ir didelis kiekis iteracių negarantuoa gero rezultato. Eksperimentai su Bayes algoritmu Toliau atliksime tokius pat bandymus, bet naudosime kitą algoritmą (Bayes), kaip ir anksčiau bandysime kas 000 iteracių: 3.3-0 pav. Bandymo grafikas su optimaliu parametrų rinkiniu, gautu atlikus 000 iteracių 3.3- pav. Bandymo grafikas su optimaliu parametrų rinkiniu, gautu atlikus 2000 iteracių 25

3.3-2 pav. Bandymo grafikas su optimaliu parametrų rinkiniu, gautu atlikus 3000 iteracių 3.3-3 pav. Bandymo grafikas su optimaliu parametrų rinkiniu, gautu atlikus 4000 iteracių 3.3-4 pav. Bandymo grafikas su optimaliu parametrų rinkiniu, gautu atlikus 5000 iteracių 3.3-5 pav. Bandymo grafikas su optimaliu parametrų rinkiniu, gautu atlikus 0000 iteracių Kaip ir ankstesniuose eksperimentuose, atliekant bandymus, buvo įvertintas parametrų radimo laikas, taip pat ir skirtumo kvadratas tarp pradinių duomenų ir modeliavimo rezultatų: 26

3.3-6 pav. Bayes(Java) metodo modeliavimo ir eksperimentų rezultatų palyginimas (ԑ priklausomybė nuo iteracių skaičiaus) 3.3-7 pav. Bayes(Java) metodo modeliavimo ir eksperimentų rezultatų palyginimas ( laiko priklausomybė nuo iteracių skaičiaus) Nors metodo skaičiavimo laikas bei skirtumo kvadratas didesnis, vis tiek matosi, kad didinant iteracių skaičių skirtumo kvadratas, kad ir ne ženkliai, bet mažėa. Taip pat pastebėta, kad metodas, kaip ir ankstesnis, su didesniu iteracių skaičiumi gali duodi blogesnį rezultatą nei su mažesniu iteracių skaičiumi. Eksperimentai su Exkor algoritmu 27

Paskutinis bandymas su GJM sistema. Kaip buvo minėta ankščiau imsime tokius pat pradinius duomenis, kad būtų galima palyginti su prieš tai darytais bandymais. Vėl kartosime bandymus kas 000 iteracių ir galiausiai padarysime paskutinį bandymą ženkliai padidinę iteracių skaičių: 3.3-8 pav. Bandymo grafikas su optimaliu parametrų rinkiniu, gautu atlikus 000 iteracių 3.3-9 pav. Bandymo grafikas su optimaliu parametrų rinkiniu, gautu atlikus 2000 iteracių 3.3-20 pav. Bandymo grafikas su optimaliu parametrų rinkiniu, gautu atlikus 3000 iteracių 3.3-2 pav. Bandymo grafikas su optimaliu parametrų rinkiniu, gautu atlikus 4000 iteracių 28

Atlikę bandymus, gavome tokius rezultatus: 3.3-24 pav. Exkor(C#) metodo modeliavimo ir eksperimentų rezultatų palyginimas (ԑ priklausomybė nuo iteracių skaičiaus) 3.3-25 pav. Exkor(C#) metodo modeliavimo ir eksperimentų rezultatų palyginimas (ԑ priklausomybė nuo iteracių skaičiaus) Iš grafikų (3.3-8 23 pav.) matome, kad gauti rezultatai, didinant iteracių skaičių, vis labiau artėa prie realių bandymo rezultatų. Galime daryti išvadą, kad skirtumo kvadratas nuo iteracių skaičiaus mažėa link 0 (žr. 3.3-24 pav.). Parametrų paieškos laikas stipriai išauga (žr. 3.3-25 pav.), todėl vykdant paiešką yra labai sunku ir reikalaua daug laiko resursų, kad prieiti prie norimo rezultato, ypač ei yra padidėęs triukšmo lygis tiek eksperimentuose, tiek imitaciniuose rezultatuose. Eksperimentuoant su,,exkor algoritmo suproektuota parametrų paieška, pastebime, 29

kad ši sistema algoritmų (žr. 3.3-26 pav.). duoda geresnius rezultatus, skirtumo kvadrato atžvilgiu, nei prieš tai bandytų 3.3-26 pav. Modeliavimo ir eksperimentų rezultatų palyginimas (ԑ priklausomybė nuo iteracių skaičiaus) Iš grafiko (žr. 3.3-26 pav.) matome, kad Exkor algoritmo pagrindu skaičiavimai gaunasi tiksliausi, bet laiko atžvilgiu - prasčiausi (žr. 3.3-27 pav.). 3.3-27 pav. Modeliavimo ir eksperimentų rezultatų palyginimas (laiko priklausomybė nuo iteracių skaičiaus) 30

3.4 Eksperimentų rezultatai Matome, kad,,exkor algoritmas, realizuoti šiam uždaviniui, buvo pasirinktas tikslingai. Jis veikia geriausiai lyginant su kitais algoritmais. Blogoi algoritmo pusė yra ta, kad norint gauti kuo tikslesnį rezultatą, reikia daug laiko resursų. Kai kuriais atveais užsakovams pasitelkus savo nuoautą, uždavinys buvo išspręstas sunaudoant mažiau laiko resursų nei kompiuteris [6]. Todėl žmogiškoi nuoauta tokioe sistemoe yra labai svarbi ir ieškant sudėtingesnių eksperimentų atitikmenis be žmogaus nesurasime. Galima daryti prielaidą, og paieška be žmogaus įsikišimo yra nereikšminga sprendžiant sudėtingesnius uždavinius. Taigi tam tikros žinios gali smarkiai paspartinti paieškos sistemą, nors šiuo metu paieškos greitis yra pakankamai geras, tačiau plečiant modelį (4 ar 6 vartų modelio parametrų paieška) sistema tampa sudėtingesnė ir paieška atitinkamai būtų vykdoma dar ilgiau. Tiriant tokias sudėtingas sistemas, kaip neuronai, labai svarbu yra laikas. Yra gaunama begales duomenų, kuriuos reikia išanalizuoti, ištirti, palyginti. Parametrų paieškos modelis šiuo atveu nebetenka prasmės, dėl didelio laiko resursų sunaudoimo. Nes modeliuoant yra bandoma ar įvertinama labai daug faktorių, atliekama daug bandymų, kurių pasėkoe, šiuo atveu, tai truktų per ilgai. Kai įprastų nuosekliųų kompiuterių resursų praktiniam uždaviniui spręsti nebeužtenka, vilčių teikia lygiagretiei kompiuteriai. Juose tą patį uždavinį tuo pačiu metu gali spręsti keli procesoriai, todėl sutrumpėtų bendra sprendimo trukmė. Taigi galimas sprendimo būdas (su tikslu sutrumpinti modelio parametrų ieškoimo laiką) modelio lygiagretinimas. 4. Lygiagrečių skaičiavimų technologios Lygiagretiei algoritmai yra vienas iš būdų pagreitinti ilgai trunkančius sudėtingus skaičiavimus. Lygiagretinant programos kodą pirmiausia kyla klausimai, kaip išskaidyti užduotį į nepriklausomas dalis, kiek procesų reikės panaudoti, kaip paskirstyti užduotis procesams, kokią tinkamiausią technologią pasirinkti lygiagretaus skaičiavimo realizavimui. Šiame skyriue apžvelgsime lygiagrečių skaičiavimų technologias, ų architektūras, privalumus ir trūkumus. 4. Asimetrinės technologios Asimetrinės technologios lygiagretiems skaičiavimams naudoa suungtų į tinklą kompiuterių (klasterių), procesorius ir atmintį (žr. 4.- pav.), todėl būtinas duomenų apsikeitimas tarp procesų. 3

4.- pav. Paskirstyta atmintis tarp procesorių Šiuo metu paskirstytos atminties (pranešimų siuntimo) paradigma tampa vis daugiau ir daugiau populiari. Viena iš priežasčių yra platus platformų, kurios palaiko pranešimų siuntimo modelį, paplitimas. Programas parašytas šiuo metodu galima paleisti naudoant kelių procesorių: paskirstytos atminties daugiaprocesorinės arba kelias vienprocesorines (suungtas į tinklą) sistemas. Pranešimų siuntimo paradigmoe procesai komunikuoa siųsdami vienas kitam pranešimus. Prie paskirstytos atminties technologių priskiriama MPI technologia. 4.2 MPI (Message Passing Interface) MPI tai komunikacinių paprogramių bibliotekos (MPL) specifikacia, kuria yra naudoamasi programuoant C/C++ ir Fortran kalbomis. Biblioteką sudaro funkcių ir paprogramių rinkinys, užtikrinantis komunikacią tarp procesų. MPI standartas apibrėžia tiesiogines (angl. point to point) komunikacias, kai komunikacia vyksta tik tarp dvieų procesų, ir kolektyvines (angl. collective) komunikacias, kai komunikacios ar sinchronizacios operacios įtraukia procesų grupes. MPI gali būti įvairiai realizuotas, pvz. MPICH, LAM-MPI ir kt. bibliotekomis, atitinkančiomis šį standartą. Visi MPI paprogramių ir konstantų vardai prasideda su prefiksu MPI_, kad išvengti pavadinimų kolizių. Pagrindinės MPI funkcios: MPI_Init (iniciuoa lygiagrečioo algoritmo darbo pradžią), MPI_Finalize (paskelbia lygiagrečioo algoritmo pabaigą), MPI_Send (naudoama duomenų siuntimui) ir MPI_Recv (naudoama duomenų gavimui). Pastarosios dvi funkcios įvykdomos tada, kai vienas procesas siunčia duomenis (MPI_Send), o kitas pasiruošęs uos priimti (MPI_Recv), t. y. tuo metu nevykdo okių kitų veiksmų. Pirmoi MPI procedūra iškviečiama bet kokioe MPI programoe, turi būti inicializavimo procedūra MPI_INIT. Kiekviena MPI programa turi išsikviesti šią procedūrą vieną kartą, prieš bet 32

kokias kitas MPI procedūras. MPI_FINALIZE procedūra iškviečiama programos pabaigoe. Ši procedūra išvalo visas MPI duomenų struktūras ir po os iškvietimo okia kita procedūra negali būti iškviesta. Svarbų vaidmenį MPI komunikaciose atlieka komunikatorius procesų grupė. MPI_COMM- WORLD komunikatorius yra apibrėžtas iš anksto. Jį sudaro visi procesai. Kitus komunikatorius gali sukurti pats vartotoas iš au egzistuoančių komunikatorių, uos suungiant ar išskaidant. Kiekvienas komunikatorius turi procesus, kurie komunikatoriaus vidue numeruoami nuo 0 iki N-, kur N procesų skaičius komunikatoriue. Kiekvieno proceso numeris suprantamas kaip o rangas (angl. rank). Rangas identifikuoa kiekvieną procesą komunikatoriaus vidue. Pavyzdžiui, rangas gali specifikuoti pranešimo šaltinį ar pristatymo vietą. Vartotoas bet kada gali sužinoti procesorių skaičių komunikatoriue naudodamas MPI_COMM_SIZE (comm, size) paprogramę ir proceso rangą komunikatoriue MPI_COMM_RANK (comm, rank) paprogramę, kur comm yra komunikatoriaus pavadinimas. Pranešimo pagalba perkeliamos kintamųų reikšmės. Visi MPI pranešimai yra nustatyto tipo (žr. 4.2- lentelė), todėl turinio tipas turi būti vienodas išsiuntimo ir gavimo metu. Kai pranešimas išsiųstas, gavimo procesas turi tikėtis gauti tą patį duomenų tipą. MPI duomenų tipas MPI_INTEGER MPI_REAL MPI_DOUBLE_PRECISION MPI_COMPLEX MPI_LOGICAL MPI_CHARACTER MPI_BYTE MPI_PACKED 4.2- lentelė. MPI duomenų tipai Pavyzdžiui, ei procesas siunčia pranešimą su MPI_INTEGER duomenų tipu, gavimo procesas turi gauti duomenų tipą MPI_INTEGER, priešingu atveu komunikacia bus ne tiksli ir funkcionalumas neapibrėžtas. Išimtis yra tik su MPI_PACKED, kuris gali suderinti bet kokius tipus. Panašiai yra su Fortrano ar C/C++ kintamųų tipais pranešime. Kintamiei turi atitikti MPI duomenų tipą, t.y. ei procesas siunčia pranešimą su duomenų tipu MPI_INTEGER, tai procesas kintamuosius turi apibrėžti INTEGER tipo, priešingu atveu funkcionalumas yra neapibrėžtas. Išimtis yra su MPI_BYTE ir MPI_PACKED. 33

4.2. MPI tiesioginė komunikacia Tiesioginė komunikacia apima tik du procesus. Vienas procesas siunčia pranešimą kitam (žr. 4.2.- pav.). Tuo tiesioginė komunikacia skiriasi nuo kolektyvinės komunikacios, kuri apima visą procesų grupę vienu metu. 4.2.- pav. Tiesioginė komunikacia Kad pasiųsti pranešimą, procesas siuntėas iškviečia MPI_SEND, kuris nustato proceso gavėo rangą komunikatoriue. Pastarasis procesas iškviečia MPI_Recv, kad gauti pranešimą. MPI_Send (message, count, datatype, dest, tag, comm, ierror), kur message siunčiamas kintamasis, count siunčiamų kintamųų skaičius, datatype MPI duomenų tipas, dest proceso gavėo rangas, tag markeris, naudoamas išskirti pranešimo tipus, comm komunikatorius, ierror gražinimo reikšmė. MPI_Recv( message, count, datatype, source, tag, comm, status, ierror), kur source proceso siuntėo rangas, status gražinimo informacia. Tiesioginėe komunikacioe yra keturi siuntimo režimai (žr. 4.2.- lentelė). Šie režimai naudoami tiek blokavimo formose, tiek formose be blokavimo. Režimai Užbaigimo sąlygos Procedūra Sinchronizuotas siuntimas Baigiasi, kai gavimas yra užbaigtas MPI_SSEND Buferinis Visada baigiasi (ei neaptikta klaida) siuntimas nepriklausomai ar buvo užbaigtas gavimas MPI_BSEND Standartinis Baigiasi, (ei neaptikta klaida) nepriklausomai siuntimas ar gavimas yra užbaigtas MPI_SEND Pasiruošęs Baigiasi, (ei neaptikta klaida) nepriklausomai siuntimas ar gavimas yra užbaigtas MPI_RSEND Gavimo Baigiasi, kai pranešimas yra gautas MPI_RECV 4.2.- lentelė. Komunikacios režimai 34

MPI tiesioginės komunikacios savybės:. Pranešimų eilės tvarkos išsaugoimas. Pranešimai ne pralenkia vienas kito. Tarkim, procesas A siunčia du pranešimus procesui B su tuo pačiu komunikatoriumi. Procesas B siunčia du gavimo kvietimus, kurie suderina abu siuntimus. Tuomet du pranešimai bus gauti ta tvarka, kuria buvo išsiųsti (first in first out). 2. Nėra galimybės siųsti ir gauti pora pranešimų iškarto. Jei vienas MPI procesas siunčia pranešimą, o kitas procesas siunčia gavimo derinimą, tuomet bet kuris siuntimas ar gavimas ilgainiui užsitęs. Galimi du scenariai: siuntimą gauna trečias procesas su suderintu gavimu, kurio atveu siuntimas užbaigiamas, bet antro proceso gavimas neužbaigiamas, arba trečias procesas pasiunčia pranešimą, kurį gauna antras procesas, kurio atveu gavimas užbaigiamas, bet pirmo proceso siuntimas neužbaigiamas. 4.2.2 MPI kolektyvinė komunikacia Kolektyvinė komunikacia perduoda duomenis tarp visų komunikatoriaus apibrėžtų procesų. Kolektyvinėe komunikacioe MPI teikia procedūrų įvairovę duomenų paskirstymui, perskirstymui ir surinkimui. Kad būtų atlikta kolektyvinė komunikacia, procesų aibei komunikatoriue turi būti sukurtas nauas komunikatorius. Kolektyvinės komunikacios sąvybės: kolektyvinė komunikacia netrukdo tiesioginei komunikaciai; bendradarbiavimas galimas, kai komunikatorius turi du vidinius komunikatorius, kurių vienas skirtas tiesioginei komunikaciai, o kitas kolektyvinei; užbaigimas reiškia, kad buferis gali būti naudoamas toliau arba naudoamas pakartotinai; visi procesai komunikatoriue turi iškviesti kolektyvinę komunikacią. Tačiau kai kurie procedūriniai argumentai yra neprasmingi kai kuriems procesams ir gali būti apibrėžti kaip fiktyvi reikšmė; panašumai su tiesiogine komunikacia: - pranešimas yra vieno konkretaus duomenų tipo masyvas; - siuntimo ir gavimo duomenų tipas turi sutapti. skirtumai: - siuntimo pranešimas turi užpildyti apibrėžtą gavimo buferį. MPI pateikia šias kolektyvinės komunikacios funkcias: 35

duomenų perdavimas (angl. broadcast) funkcios pagalba iš vieno proceso siunčiamos pranešimų kopios į visus kitus procesus; duomenų paskirstymo (angl. scatter) funkcios atveu duomenys iš vieno proceso paskirstomi visiems procesams; duomenų surinkimo (angl. gathering) funkcios atveu duomenys siunčiami iš visų procesų į vieną; visiško duomenų rinkimo (angl. allgather) atveu duomenų surinkimas taikomas visiems procesams; iš visų procesorių duomenų perdavimo visiems procesams (angl. alltoall) funkcios pagalba visiprocesai gauna skirtingus rezultatus. MPI privalumai: suungti į tinklą kompiuteriai gali turėti skirtingas architektūras; konstruoant daugiaprocesorines sistemas patiriamos mažesnės išlaidos, nei perkant superkompiuterius. Trūkumai: nėra tiesioginio proceso prieinamumo prie kito proceso atminties; informacios apsikeitimas tarp procesų reikalaua laiko, todėl dideliais kiekiais vykstantis informacios apsikeitimas neduos efektyvumo; reikalinga greita tinklinė įranga, kuri yra brangi. 4.3 Grid sistemos Grid tinklas - tai geografiškai paskirstytų kompiuterinių resursų visuma, apungtų į virtualų superkompiuterį. Grid resursus dažniausiai sudaro klasteriai, priklausantys Grid tinklo partneriams, kurie skiria visus arba dalį klasterio mazgų Grid vartotoų uždaviniams skaičiuoti [3]. Natūralu, kad tokiame tinkle ypač aktuali saugumo problema, kuri leistų lokalių resursų administratoriams pasitikėti Grid vartotoais bei ų grupėmis (virtualiomis organizaciomis) ir užtikrintų saugų vartotoų prisiungimą bei tinkamą resursų naudoimą. Modelio parametrų ieškoimui buvo pasitelktas BalticGrid gridas, kuris ungia Lietuvą, Latvią, Estią, Lenkią ir kt. šalis (žr. 4.3- pav.). 36

4.3.- pav. BalticGrid padengimo žemėlapis Norint gauti priėimą reikia: Gauti BalticGrid pasirašytą skaitmeninį sertifikatą. Tam reikia susigeneruoti sertifikato užklausą ir kreiptis į Lietuvoe įgaliotus atstovus, kurie patikina ūsų asmens duomenis ir užklausą persiunčia į BalticGrid sertifikavimo tarnybą. Kelių dienų bėgye elektroniniu paštu gauname laišką su prisegtu pasirašytu sertifikatu. Tapti bent vienos vartotoų grupės (dar vadinamos VO) nariu, nes tik vartotoų grupės, o ne atskiriems vartotoams suteikiami Grid resursai skaičiavimams atlikti. Virtuali organizacia (VO) - tai vartotoų grupė, kuriai suteikta teisė leisti darbus tam tikrame Grid resursų rinkinye t.y. tam tikruose Grid tinkle esančiuose klasteriuose. Pavyzdžiui viename moksliniame proekte dalyvauantys vartotoai gali priklausyti vienai VO ir naudotis vienodais Grid resursais. 4.3. JDL Į GRID siunčiamos užduotys aprašomos JDL (Job Description Language) failuose. Failo struktūra (pagrindiniai atributai ir ų reikšmės): 37

4.3.- lentelė. Jdl failų pagrindiniai atributai ir ų reikšmės. Atributas Galimos reikšmės Prasmė Type "Job" JobType "Normal", "MPICH", Užduoties tipas "Interactive", "DAG", "Parametric", "Checkpointable" Executable "/kelias/programa", "programa" Programa, kuri bus vykdoma Arguments "arg" arba "arg arg2" Užduoties programos argumentai StdInput "failo vardas" Failas, kuris bus pakištas programai vieto įvedimo iš konsoles (stdin) StdOutput "failo_vardas" Kur bus įsimenami programos išvedami į ekraną rezultatai (stdout) StdError "failo_vardas" Kur bus įsimenami programos pranešimai apie klaidas (stderr) InputSandbox { "failas", "failas2" } Programa ir os duomenys, kurie persiunčiami kartu su užduotim ( iki 0 MB ) OutputSandbox { "failas", "failas2" } Failai, kurie gražinami su užduoties rezultatais RetryCount N N - skaičius, kiek kartų bandyti pakartotinai paleist užduotį, ei užduotis pasibaigė klaida. Requirements ( loginė išraiška ) Reikalavimai, pagal kuriuos atrenkami užduoties vykdymui tinkami klasteriai. Rank ( aritmetinė išraiška ) Išraiška, pagal kurią rūšiuoami reikalavimus tenkinantys klasteriai CPUNumber N Norimas klasterio core'u skaičius (MPICH užduotims, core'ai išskiriami viename klasterye) Taigi iš lentelės duomenų matome (žr. 4.3. lentelė), kad pagrinde reikia nurodyti Job Type atributo reikšmę į MPICH tai reiškia, kad skaičiavimai bus atliekami su nurodytu atribute CPUNumber procesorių skaičiumi. Taip pat patartina nurodyti Requirements atributą, kad darbas patektų į reikalavimus atitinkantį klasterį. Ir be abeo atribute InputSandBox ir OutputSandBox nurodyti failus, kokie bus siunčiami ir gaunami. 4.3.2 Skaičiavimų paleidimas BalticGrid gride Gavus reikiamą sertifikato patvirtinimą ir įsiregistravus į vieną iš virtualių organizacių, gavome priėimą prie grido resursų. Išlygiagretinti C++ modelio failai (ir kiti failai reikalingi uždaviniui paleisti) perkeliami į specialiai išskirtą vietą gride. Serverye galima pasitikrinti grido klasterių būklę (komanda: lcg-infosites vo balticgrid all), t.y. kiek procesorių, reikiamame klasterye naudoama, kiek ų yra laisvų. Taip pat gaunama informacia apie resursų užimtumą. Skaičiavimų paleidimas gride ir rezultatų gavimas (žr. 4.3- pav.): Pirmas žingsnis - užregistruoti skaičiavimus (darbą) gride. Galima nurodyti reikiamą klasterį savarankiškai (komanda: glite-wms-ob-submit a o obs r ce.grid.lei.lt:29/obmanagerpbs-balticgrid ob.dl) arba tai patikėti sistemai. Taigi šiuo žingsniu nusiunčiame klasteriui nurodymus apie darbą ir reikiamus failus. 38

Darbas užregistruoamas ir nustatoma eilė (darbo statusas sheduled). Jei eilės nėra ir yra tinkamas skaičius procesorių darbas paleidžiamas vykdymui (darbo statusas - running). Kai darbas baigtas (darbo statusas done) arba kai darbas nutrauktas (darbo satusas aborted). Jei darbas baigiasi sėkmingai, visi gauti rezultatai atspausdinami viename faile ob.out, o ei darbas, dėl kažkokių priežasčių buvo nutrauktas, faile ob.err atspausdinama nutraukimo priežastis. Pataisius klaidas, vėl pradedama nuo darbo užregistravimo. 39

4.3- pav. Darbo realizacios gride schema 40

5. Lygiagretaus skaičiavimo realizacia paieškos modelio programos kode Ilgų diskusių su užsakovais pasekoe buvo nuspręsta lygiagretinti ir realizuoti GRID aplinkoke, visų pirmą, modelį su Monte Carlo optimizavimo algoritmu - Mig, dėl o greito ir paprasto veikimo. Modelis buvo supaprastintas ir perrašytas į C++ kalbą. Šiuo metu GJM parametru paieškos programiniam kodui yra pritaikyta MPI technologia. Eksperimentiniai skaičiavimai buvo atlikti GRID aplinkoe su 2-8 procesoriais. 5. MPI bibliotekos pritaikymas (modeliui su Monte Carlo metodu) Mūsų atveu, modelio lygiagretinimas realizuoamas OPENMPI-.2.3-GCC-4.2.0 bibliotekos pagalba. Kaip minėta ankščiau, kad programa būtų paleista GRID aplinkoe, reikalingas Make failas, kuriame nurodoma kokį kompiliatorių reikia naudoti kompiliuoant programą. Taip pat parodytas ir JDL failo pavyzdys, kuriame nurodėme kokio tipo užduotis, kiek naudoti procesorių, ir kokie papildomi failai bus reikalingi darbui atlikti. Taip pat nurodomi reikalavimai klasteriui Requirements. Make failas all: mpi_grid mpi_gridxx mpi_grid: mpi_grid.c mpicc o mpi_grid mpi_grid.c mpi_gridxx: mpi_gridxx.cc mpicxx o mpi_gridxx mpi_gridxx.cc clean: rm f *.o mpi_grid mpi_gridxx JDL failas JobType = MPICH ; CpuNumber = 8; Executable = ob.sh ; StdOutPut ob.out ; StdError = ob.err ; InputSandbox = { ob.sh, Makefile, mpi_gridxx.cc, distribute, cleanup }; OutputSandbox = { ob.err, ob.out }; RetryCount = 0; Requirements=Member( VO-balticgrid-E-PARALLEL-OPENMPI-.2.3-GCC-4.2.0, other.gluehostapplicationsoftwareruntimeenvironment); 4

MPI kodo fragmentas programoe //---------------------------------------------------------------------------------------------------- // Divide iterations //---------------------------------------------------------------------------------------------------- void Divide(int *b, int len, int it) { int i; double check = it/len; double check2 = floor(check); if (check > check2) { for (i = 0; i < len-; i ++){ b[i] = int(check2); } b[len-] = it - (int(check2)* (len-)); } else if (check == check2){ for(i = 0; i < len; i++){ b[i] = int(check); } } } //---------------------------------------------------------------------------------------------------- // Main method //---------------------------------------------------------------------------------------------------- int main(int argc, char * argv[]) { int Iterations = 0000; ModelTask task; int cpu_number; int portion[]; int rank; double startwtime = 0.0, endwtime; int i; double sum = 0000; MPI::Init(argc, argv);... cpu_number = MPI::COMM_WORLD.Get_size(); rank = MPI::COMM_WORLD.Get_rank();... int a[cpu_number]; Divide(a, cpu_number,iterations); MPI::COMM_WORLD.Scatter(a,,MPI::INT,portion,,MPI::INT,);... srand(rank *(unsigned) time(null)); startwtime = MPI::Wtime(); for(i = 0; i < portion[rank]; i++){ 42

RandomPoint randompoint(task.domain); double log = task.f(randompoint.x); if (log < sum) sum = log; printf("proccess nr %d of %d; VKP %f Min %f\n", rank, cpu_number, log, sum); } endwtime = MPI::Wtime();... printf("total time took: %f sec. Min Rez:%f Procesor rank %d \n",(endwtime-startwtime), sum, rank); MPI::Finalize();... return 0; } Rezultatų failo pavyzdys /opt/exp_soft/balticgrid/e-parallel-openmpi-.2.3-gcc-4.2.0/bin/mpirun /opt/exp_soft/balticgrid/e-parallel-openmpi-.2.3-gcc-4.2.0/bin/mpicc /opt/exp_soft/balticgrid/e-parallel-openmpi-.2.3-gcc-4.2.0/bin/mpicxx mpicxx -o mpi_gridxx mpi_gridxx.cc Shared home or single node ++++ no copying necessary... Total time took: 2.55556 sec. MinRez:4.0846 Procesor rank 0 Total time took: 2.493830 sec. MinRez:5.469309 Procesor rank 3 Total time took: 22.207225 sec. MinRez:3.099 Procesor rank 2 Total time took: 22.350022 sec. MinRez:5.539096 Procesor rank Total time took: 24.969002 sec. MinRez:3.947308 Procesor rank 5 Total time took: 25.503 sec. MinRez:3.4837 Procesor rank 4 rm -f *.o mpihello mpihelloxx Shared home or single node ++++ no cleaning necessary Programa pradžioe nustato, kiek procesorių buvo nurodyta užklausoe. Sekantis žingsnis padalina iteracių skaičių po lygiai kiekvienam procesoriui (žr. 5.- pav.): 43

5.- pav. Modelio lygiagretinimo schema MPI pagalba siunčiamas iteracių skaičius, kurį atskiras procesorius turės apdoroti (kintamasis portion). Toliau programoe procesoriai, nepriklausomai vienas nuo kito, atlieka skaičiavimus. Pasibaigus skaičiavimams, procesorius atspausdina į failą savo surastą geriausią rezultatą ir kiek laiko am užtruko pereiti užduotą iteracių skaičių. Dėl metodo pritaikomumo lygiagretinimui pavyko išvengti dažno komunikavimo tarp procesų, kurių pasekoe gali išaugti bendras uždavinio skaičiavimo laikas (realizuota kolektyvinė MPI komunikacia). Galiausiai išrenkamas geriausias rezultatas ir didžiausias laikas. 5.2 MPI bibliotekos pritaikymas (modeliui su Bayes metodu) Šiuo metodu realizuota lygiagrečioi versia yra panaši į prieš tai nagrinėto metodo versią, tik papildomai kiekvienas procesas dar įvertina paramėtų reikšmes skirtinguose taškuose. Paleisti skaičiavimams naudoamas tas pats kompiliatorius ir prieš tai naudoti papildomi failai (sh, dl, Make) int main (int argc, char * argv[]) { int Iterations = 000; int InitialPoint = 0; ModelTask task; Result result; ResultLogger resultlogger; 44