2016-11-18 3 views
0

Я пытаюсь вызвать функцию из пакета flexsurv с помощью opencpu. Я бегу на OSX Sierra.вызов Opencpu занимает больше времени, чем ожидалось

Я изменил мой файл .conf opencpu включить flexsurv в списке предустановленных пакетов:

{ 
"enable.api.library": true, 
"enable.api.apps": true, 
"enable.api.bioc": true, 
"enable.api.cran": true, 
"enable.api.gist": true, 
"enable.api.github": true, 
"enable.api.user": true, 
"enable.api.tmp": true, 
"enable.cors" : true, 
"enable.post.code": true, 
"error.showcall": true, 
"gist.cache": 300, 
"github.cache": 86400, 
"cran.cache": 86400, 
"public.url" : "https://public.opencpu.org/ocpu", 
"smtp.server" : "localhost", 
"httpcache.post": 300, 
"httpcache.lib": 86400, 
"httpcache.git": 900, 
"httpcache.gitapi": 120, 
"httpcache.tmp": 86400, 
"httpcache.cran": 86400, 
"httpcache.static": 31536000, 
"httpcache.bioc": 31536000, 
"key.length" : 9, 
"appspaths": "/usr/local/lib/opencpu/apps-library", 
"repos": "http://cran.rstudio.com", 
"rlimit.as": 2e9, 
"rlimit.fsize": 1e8, 
"rlimit.nproc": 50, 
"timelimit.get": 600, 
"timelimit.post": 90, 
"timelimit.webhook": 900, 
"preload": ["ggplot2", "lattice","survival","flexsurv"] 

}

я тогда начать открытый центральный процессор и сделать следующий вызов в завиток:

curl localhost:7210/ocpu/library/flexsurv/R/pgompertz/json -d "q=[0,1,2,3]&shape=0.001&rate=0.001" -w "%{time_total}\n" -o /dev/null 

Этот вызов занимает около 1,4 секунд, несмотря на чрезвычайно простой и быстрый вызов функции, который не требует никакого времени.

сравнения, называя RNorm сделать 10000 случайных нормальных образцов возвращается в менее чем полсекунды:

curl localhost:7210/ocpu/library/stats/R/rnorm/json -d "n=100000" -w "%{time_total}\n" -o /dev/null 

Почему взять сравнительно простой flexsurv вызов так много больше времени? Предварительная загрузка не работает? Если да, то как я могу это исправить? Если нет, что вызывает дополнительную задержку?

Любая помощь очень ценится ...

ответ

0

Проблема была решена с помощью облачной версии opencpu, которая видит гораздо больше выгод от поджимать.

Шаги:

  1. Установка докер для УДС из https://docs.docker.com/engine/installation/mac/

  2. Установите opencpu DOCKER контейнер docker pull opencpu/base

  3. Run докер ж/терминальную сессию docker run -t -i -p 80:80 -p 8004:8004 opencpu/base sh -c 'service opencpu restart && /bin/bash'
  4. Вызов R из DOCKER контейнера, установить упаковки по необходимости
  5. Используйте apt-get для установки текстового редактора по выбору в контейнер докеров (например, sudo apt-get nano)
  6. Используйте текстовый редактор для редактирования /etc/opencpu/server.conf и добавьте необходимые пакеты для предварительной загрузки.
  7. выхода терминала и следовать инструкциям здесь, чтобы совершить новое изображение
  8. Restart Докера и запустить docker run -t -p 80:80 -p 8004:8004 <your image name>
  9. Opencpu сейчас и работает, и призывает к предустановленным пакетам будет возвращать гораздо быстрее.

Кредит ответ принадлежит opencpu разработчиков Jeroen Оомс, который помог мне на группу Google: https://groups.google.com/forum/#!topic/opencpu/D49Adx6GSiE

Смежные вопросы