เป้าหมายของ tgstat
คือการให้การใช้งานที่รวดเร็วและมีประสิทธิภาพของฟังก์ชั่น R บางอย่างเช่น 'Cor' และ 'dist' พร้อมกับเครื่องมือทางสถิติเฉพาะ
วิธีการต่าง ๆ ใช้เพื่อเพิ่มประสิทธิภาพรวมถึงการประมวลผลแบบหลายและการใช้ฟังก์ชั่นที่ดีที่สุดที่จัดทำโดยไลบรารีย่อยพีชคณิตเชิงเส้นพื้นฐาน (BLAS)
ติดตั้งจาก Cran:
Install.packages ("TGSTAT")
สำหรับเวอร์ชันการพัฒนา:
Remotes :: Install_github ("tanaylab/tgstat"))
ห้องสมุด (TGSTAT) set.seed (เมล็ด = 60427) แถว <- 3000cols <- 3000Vals <- ตัวอย่าง (1: (แถว * Cols / 2), แถว * cols, แทนที่ = t) m <- เมทริกซ์ (vals, nrow = แถว, ncol = cols) m_with_nas <- mm_with_nas [ตัวอย่าง (1: (แถว * cols), แถว * cols / 10)] <- nadim (m)#> [1] 3000 3000
ความสัมพันธ์ของเพียร์สันโดยไม่มี BLAS ไม่มี NAS:
ตัวเลือก (tgs_use.blas = f) System.Time (TGS_COR (M)) #> ระบบผู้ใช้ผ่านไป #> 106.865 1.951 2.331
เช่นเดียวกับ blas:
# tgs_cor, กับ blas, no nas, pearsonoptions (tgs_use.blas = t) System.Time (TGS_COR (M)) #> ระบบผู้ใช้ผ่านไป #> 4.228 0.324 0.809
Base R Version:
System.time (cor (m)) #> ระบบผู้ใช้ผ่านไป #> 21.780 0.078 21.857
ความสัมพันธ์ของเพียร์สันโดยไม่มี BLAS กับ NAS:
ตัวเลือก (tgs_use.blas = f) System.time (tgs_cor (m_with_nas, pairwise.complete.obs = t)) #> ระบบผู้ใช้ที่ผ่านไป #> 158.846 2.687 3.164
เช่นเดียวกับ blas:
ตัวเลือก (tgs_use.blas = t) System.time (tgs_cor (m_with_nas, pairwise.complete.obs = t)) #> ระบบผู้ใช้ที่ผ่านไป #> 11.286 1.173 0.803
Base R Version:
System.time (cor (m_with_nas, use = "pairwise.complete.obs")) #> ระบบผู้ใช้ที่ผ่านไป #> 311.627 0.182 311.823
ระยะทางที่ไม่มี blas ไม่มี Nas:
ตัวเลือก (tgs_use.blas = f) System.time (tgs_dist (m)) #> ระบบผู้ใช้ผ่านไป #> 354.742 2.509 5.002
เช่นเดียวกับ blas:
ตัวเลือก (tgs_use.blas = t) System.Time (TGS_DIST (M)) #> ระบบผู้ใช้ผ่านไป #> 7.407 0.656 0.462
ฐาน R:
System.time (dist (m, method = "Euclidean")) #> ระบบผู้ใช้ผ่านไป #> 164.197 0.077 164.280
BLAS
tgstat
ทำงานได้ดีที่สุดเมื่อ R เชื่อมโยงกับการใช้งาน BLAS ที่ดีที่สุด
มีการใช้งาน BLAS ที่ได้รับการปรับปรุงให้ดีที่สุดทั้งที่เป็นกรรมสิทธิ์ (เช่น MKL ของ Intel, Veclib ของ Apple) และ OpenSource (เช่น OpenBlas, Atlas) น่าเสียดายที่ R มักใช้โดยค่าเริ่มต้นการใช้งานการอ้างอิง BLAS ซึ่งเป็นที่รู้จักกันว่ามีประสิทธิภาพที่ไม่ดี
การมี tgstat
พึ่งพาการอ้างอิง BLAS จะส่งผลให้ประสิทธิภาพต่ำมากและท้อแท้อย่างยิ่ง หากการใช้งาน R ของคุณใช้ BLAs ที่ดีที่สุดให้ตั้ง options(tgs_use.blas=TRUE)
เพื่อให้ tgstat
โทร BLAS มิฉะนั้นให้ตั้ง options(tgs_use.blas=FALSE)
(ค่าเริ่มต้น) ซึ่งสั่งให้ tgstat
หลีกเลี่ยง BLAs และใช้วิธีการเพิ่มประสิทธิภาพของตัวเองแทนที่จะใช้วิธีการเพิ่มประสิทธิภาพของตัวเองเท่านั้น หากมีข้อสงสัยอาจเป็นไปได้ที่จะเรียกใช้หนึ่งในฟังก์ชั่นที่เข้มข้นของ CPU tgstat
(เช่น tgs_cor
) และเปรียบเทียบเวลาทำงานภายใต้ options(tgs_use.blas=FALSE)
คำแนะนำที่แน่นอนสำหรับการเชื่อมโยง R กับไลบรารี BLAS ที่ดีที่สุดนั้นขึ้นอยู่กับระบบและอยู่นอกขอบเขตของเอกสารนี้