An example of running an MSE in parallel, downloading data from dropbox and google drive, and uploading results to Amazon Web Server.

library(knitr)
## Global options
opts_chunk$set(cache     =TRUE,
               cache.path='cache/parallel/',
               echo      =TRUE,
               eval      =!TRUE,
               prompt    =FALSE,
               comment   =NA,
               message   =FALSE,
               warning   =FALSE,
               tidy      =FALSE,
               fig.height=6,
               fig.width =8,
               fig.path  ='tex/parallel-')


iFig=0

Load Libraries

library(plyr)
library(reshape)

library(FLCore)
library(FLBRP)
library(FLasher)
library(ggplotFL)
library(FLife)
library(mydas)
theme_set(theme_bw())
options(digits=3)
library(doParallel)
library(foreach)

registerDoParallel(4)
#library(googledrive)
#fls=drive_find()
#drive_download("turbot.RData",path="turbot.RData")
#load("turbot.RData")

load("/home/laurence/Desktop/sea++/mydas/project/data/OM/turbot.RData")

### Stochasticity
nits=dim(om)[6]
set.seed(1234)
srDev=FLife:::rlnoise(nits,FLQuant(0,dimnames=list(year=1:100)),0.2,b=0.0)

### OEM
uDev =FLife:::rlnoise(nits,FLQuant(0,dimnames=list(year=1:100)),0.3,b=0.0)

## MSE for Derivate empirical MP
scen=expand.grid(k1=seq(0.2,1.0,0.8),k2=seq(0.2,1.0,0.8),gamma=seq(1,2),
                 stringsAsFactors=FALSE)

registerDoParallel(4)
mseSBTD=mydas:::mseSBTD
empD<-foreach(i=(seq(dim(scen)[1])), 
              .combine=rbind,
              .multicombine=TRUE,
              .packages=c("FLCore","FLasher","FLBRP","FLife","plyr","reshape")) %dopar%{

               omRes=mseSBTD(om,eq,control=with(scen[i,],c(k1=k1,k2=k2,gamma=gamma)),start=60,end=100,
                             sr_deviances=srDev,u_deviances=uDev)

               res  =cbind(scen=i,k1=scen[i,"k1"],k2=scen[i,"k2"],gamma=scen[i,"gamma"],
                            omSmry(omRes,eq,lh))

               res}
#library(googledrive)
#fls=drive_find()
#drive_download("turbot.RData",path="turbot.RData")
#load("turbot.RData")
#library(googledrive)
#fls=drive_find()
#drive_download("turbot.RData",path="turbot.RData")
#load("turbot.RData")
### Stochasticity
nits=dim(om)[6]
set.seed(1234)
srDev=FLife:::rlnoise(nits,FLQuant(0,dimnames=list(year=1:100)),0.2,b=0.0)

### OEM
uDev =FLife:::rlnoise(nits,FLQuant(0,dimnames=list(year=1:100)),0.3,b=0.0)

## MSE for Derivate empirical MP
scen=expand.grid(k1=seq(0.2,1.0,0.8),k2=seq(0.2,1.0,0.8),gamma=seq(1,2),
                 stringsAsFactors=FALSE)
### Stochasticity
nits=dim(om)[6]
set.seed(1234)
srDev=FLife:::rlnoise(nits,FLQuant(0,dimnames=list(year=1:100)),0.2,b=0.0)

### OEM
uDev =FLife:::rlnoise(nits,FLQuant(0,dimnames=list(year=1:100)),0.3,b=0.0)

## MSE for Derivate empirical MP
scen=expand.grid(k1=seq(0.2,1.0,0.8),k2=seq(0.2,1.0,0.8),gamma=seq(1,2),
                 stringsAsFactors=FALSE)
## MSE for Derivate empirical MP
scen=expand.grid(k1=seq(0.2,1.0,0.8),k2=seq(0.2,1.0,0.8),gamma=seq(1,2),
                 stringsAsFactors=FALSE)

empD<-foreach(i=(seq(dim(scen)[1])), 
              .combine=rbind,
              .multicombine=TRUE,
              .packages=c("FLCore","FLasher","FLBRP","FLife","plyr","reshape")) %dopar%{

               omRes=mseSBTD(om,eq,control=with(scen[i,],c(k1=k1,k2=k2,gamma=gamma)),start=60,end=100,
                             sr_deviances=srDev,u_deviances=uDev)

               res  =cbind(scen=i,k1=scen[i,"k1"],k2=scen[i,"k2"],gamma=scen[i,"gamma"],
                            omSmry(omRes,eq,lh))

               res}
empD<-foreach(i=(seq(dim(scen)[1])), 
              .combine=rbind,
              .multicombine=TRUE,
              .packages=c("FLCore","FLasher","FLBRP","FLife","plyr","reshape")) %dopar%{

               omRes=mseSBTD(om,eq,control=with(scen[i,],c(k1=k1,k2=k2,gamma=gamma)),start=60,end=100,
                             sr_deviances=srDev,u_deviances=uDev)

               res  =cbind(scen=i,k1=scen[i,"k1"],k2=scen[i,"k2"],gamma=scen[i,"gamma"],
                            omSmry(omRes,eq,lh))

               res}
library(RPostgreSQL)
library(dplyr)
library(plyr)
library(reshape)

drv  = dbDriver("PostgreSQL")
con1 = dbConnect(drv, host = 'postgresql-seascope.csffkpr9jjjn.eu-west-2.rds.amazonaws.com',
                 dbname='FLRout',
                 port = 5432,
                 user = 'MydasAdmin',
                 password = 'datapoor1!')
##write
res$om="Turbot"
dbWriteTable(con1, "data_om", value = res, append=FALSE,overwrite=FALSE,row.names=FALSE)

##read
omtest = dbGetQuery(con1, paste0("SELECT *from data_om"))

scenarios=expand.grid(stock=c("brill","turbot","ray","pollack","sprat","lobster","razor"),
                      mp   =c("xsa","mpb","sra","lbspr","2/3","pid","sbt1","sbt2","irate"))
xsaOptions=expand.grid(mp="xsa",ftar=c(0.7,1,1,2),interval=1:3)
scenarios=merge(scenarios,xsaOptions,all=TRUE)
res$om="Turbot"
dbWriteTable(con1, "data_om", value = res, append=FALSE,overwrite=FALSE,row.names=FALSE)
omtest = dbGetQuery(con1, paste0("SELECT *from data_om"))

scenarios=expand.grid(stock=c("brill","turbot","ray","pollack","sprat","lobster","razor"),
                      mp   =c("xsa","mpb","sra","lbspr","2/3","pid","sbt1","sbt2","irate"))
xsaOptions=expand.grid(mp="xsa",ftar=c(0.7,1,1,2),interval=1:3)
scenarios=merge(scenarios,xsaOptions,all=TRUE)

Software Versions

Author information

Laurence KELL. laurie@seaplusplus.co.uk

Acknowledgements

References {#References}



flr/mydas documentation built on Jan. 19, 2024, 10:33 a.m.