inst/doc/parallel.R

## ----setup, include=FALSE, message=FALSE--------------------------------------
library(knitr)
opts_chunk$set(eval = identical(Sys.getenv("NOT_CRAN"), "true"))

## ----libs,message=FALSE, eval=TRUE--------------------------------------------
library(glmmTMB)
set.seed(1)
nt <- min(parallel::detectCores(),5)

## ----simulate1----------------------------------------------------------------
#  N <- 3e5
#  xdata <- rnorm(N, 1, 2)
#  ydata <- 0.3 + 0.4*xdata + rnorm(N, 0, 0.25)

## ----fit1---------------------------------------------------------------------
#  system.time(
#    model1 <- glmmTMB(formula = ydata ~ 1 + xdata,
#                      control = glmmTMBControl(parallel = 1))
#    )

## ----fit2---------------------------------------------------------------------
#  system.time(
#    model2 <- glmmTMB(formula = ydata ~ 1 + xdata,
#                      control = glmmTMBControl(parallel = nt))
#    )

## ----simulate2----------------------------------------------------------------
#  xdata <- rnorm(N, 1, 2)
#  groups <- 200
#  data_use <- data.frame(obs = 1:N)
#  data_use <- within(data_use,
#  {
#  
#    group_var <- rep(seq(groups), times = nrow(data_use) / groups)
#    group_intercept <- rnorm(groups, 0, 0.1)[group_var]
#    xdata <- xdata
#    ydata <- 0.3 + group_intercept + 0.5*xdata + rnorm(N, 0, 0.25)
#  })

## ----fit3---------------------------------------------------------------------
#  (t_serial <- system.time(
#    model3 <- glmmTMB(formula = ydata ~ 1 + xdata + (1 | group_var), data = data_use, control = glmmTMBControl(parallel = 1))
#   )
#  )

## ----fit4---------------------------------------------------------------------
#  (t_parallel <- system.time(
#       update(model3,  control = glmmTMBControl(parallel = nt))
#   )
#  )

## ----SI-----------------------------------------------------------------------
#  print(sessionInfo(), locale=FALSE)

Try the glmmTMB package in your browser

Any scripts or data that you put into this service are public.

glmmTMB documentation built on Oct. 7, 2023, 5:07 p.m.