您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 营销创新 > 突破R内存瓶颈的若干技术
........................................突破R内存瓶颈的若干技术寇强kouqiang@mail2.sysu.edu.cn华南统计科学研究中心2014年5月25日寇强(华南统计科学研究中心)突破R内存瓶颈的若干技术2014年5月25日1/44........................................自我介绍寇强微博:@Gossip_useR华南统计科学研究中心成员信息学博士在读(博一),串联质谱的数据分析和软件开发生物本科,大三开始自学编程寇强(华南统计科学研究中心)突破R内存瓶颈的若干技术2014年5月25日2/44........................................干货时间寇强(华南统计科学研究中心)突破R内存瓶颈的若干技术2014年5月25日3/44........................................相关技术和实现HashingIdigest:createcryptographichashdigestsofRobjectsMemoizationImemoise:memoisefunctionsIR.cache:fastandlight-weightmemorizationofobjectsandresultsKey/valuestorageIstashR:asetoftoolsforadministeringsharedrepositoriesIfilehash:simplekey-valuedatabaseIcacher:toolsforcachinganddistributingstatisticalanalysesDiskIbigmemory:sharedmemoryandmemory-mappedfilesISOAR:memorymanagementinRbydelayedassignmentsIff:memory-efficientstorageoflargedataondiskandfastaccessImvbutils:workspaceorganization,codeanddocumentationeditingItrack:trackobjectsDatabaseIdplyr:agrammarofdatamanipulationISciDB:RinterfacetoSciDB寇强(华南统计科学研究中心)突破R内存瓶颈的若干技术2014年5月25日4/44........................................相关技术和实现HashingIdigest:createcryptographichashdigestsofRobjectsMemoizationImemoise:memoisefunctionsIR.cache:fastandlight-weightmemorizationofobjectsandresultsKey/valuestorageIstashR:asetoftoolsforadministeringsharedrepositoriesIfilehash:simplekey-valuedatabaseIcacher:toolsforcachinganddistributingstatisticalanalysesDiskIbigmemory:sharedmemoryandmemory-mappedfilesISOAR:memorymanagementinRbydelayedassignmentsIff:memory-efficientstorageoflargedataondiskandfastaccessImvbutils:workspaceorganization,codeanddocumentationeditingItrack:trackobjectsDatabaseIdplyr:agrammarofdatamanipulationISciDB:RinterfacetoSciDB寇强(华南统计科学研究中心)突破R内存瓶颈的若干技术2014年5月25日5/44........................................bigmemory寇强(华南统计科学研究中心)突破R内存瓶颈的若干技术2014年5月25日6/44........................................bigmemory一系列扩展包:bigmemory,bigmemory.sri,bigtabulate,biganalyticssynchronicity,bigalgebra2010年JohnMChambersStatisticalSoftwareAward核心数据结构由C++实现寇强(华南统计科学研究中心)突破R内存瓶颈的若干技术2014年5月25日7/44........................................ThebigmemoryProjectbigmemoryCorebig.matrixcreationandmaniputionbigalgebralinearalgebrafor(big.)matricesbigtabulatefasttabulationandsummariesbiganalyticsstatisticalanalyseswithbig.matricesbiglmregressionsfordatatoobigtofitinmemorysynchronicitymutualexclusionsirlbatruncatedSVDson(big.)matricesforeachconcurrent-enabledloopsNMFnon-negativematrixfactorizationdoMCparallelbackendforSMPunixdoNWSconcurrentbackendforNetworkSpacesdoSnowconcurrentbackendforsnowdoSMPconcurrentbackendforSMPmachinesTheBigmemoryProjectAdependson(orimports)BBsuggestsCABCBAnRpackageanddescriptionDNAcopyDNAcopynumberdataanalysisdoRedisconcurrentbackendforredisLow-levelparallelsupportmethodsgenericfunctionsstatsstatisticalfunctionsutilsutilityfunctionsRbasepackages(notallareshown)packagedescriptionMichaelJ.KaneandJohnW.Emerson:TheBigmemoryProject寇强(华南统计科学研究中心)突破R内存瓶颈的若干技术2014年5月25日8/44........................................bigmemoryA-matrix(data=0,5000,5000)x-sample(1:5000,size=5000,replace=TRUE)y-sample(1:5000,size=5000,replace=TRUE)for(iin1:5000){A[x[i],y[i]]-1}library(bigmemory)library(biganalytics)options(bigmemory.typecast.warning=FALSE)B-big.matrix(5000,5000,init=0)for(iin1:5000){B[x[i],y[i]]-1}B##Anobjectofclassbig.matrix##Slotaddress:##pointer:0x26a5690寇强(华南统计科学研究中心)突破R内存瓶颈的若干技术2014年5月25日9/44........................................bigmemorytypeof(B)##[1]doubleclass(B)##[1]big.matrix##attr(,package)##[1]bigmemorylsos()##TypeSizeRowsColumns##Amatrix20000020050005000##xinteger200405000NA##yinteger200405000NA##Bbig.matrix66450005000寇强(华南统计科学研究中心)突破R内存瓶颈的若干技术2014年5月25日10/44........................................内存共享desc-describe(B)dput(desc,file=B.big.matrix)colsum(B,1:10)##[1]0102112000另一个R会话中:dput(desC,file=B.big.matrix)C-attach.big.matrix(desC)colsum(C,1:10)##[1]0102112000寇强(华南统计科学研究中心)突破R内存瓶颈的若干技术2014年5月25日11/44........................................内存共享desc##Anobjectofclassbig.matrix.descriptor##Slotdescription:##$sharedType##[1]SharedMemory####$sharedName##[1]e675ab11-0431-46c2-9024-6e33564974ec####$totalRows##[1]5000####$totalCols##[1]5000####$rowOffset##[1]05000####$colOffset##[1]05000####$nrow##[1]5000####$ncol##[1]5000####$rowNames##NULL####$colNames##NULL####$type##[1]double####$separated##[1]FALSE寇强(华南统计科学研究中心)突破R内存瓶颈的若干技术2014年5月25日12/44........................................文件library(bigmemory)library(biganalytics)D-filebacked.big.matrix(5000,5000,init=0,backingfile=matrix.example,descriptorfile=matrix.example.desc)D##Anobjectofclassbig.matrix##Slotaddress:##pointer:0x3534e00list.files()##[1]matrix.example##[2]matrix.example.desc寇强(华南统计科学研究中心)突破R内存瓶颈的若干技术2014年5月25日13/44........................................read.big.matrix()12GB航空数据读入x-read.big.matrix(airline.csv,header=TRUE,backingfile=airline.bin,descriptorfile=airline.desc,type=intege
本文标题:突破R内存瓶颈的若干技术
链接地址:https://www.777doc.com/doc-659084 .html