Executing native Java']Java code in R: an approach based on a local server

被引:1
|
作者
Fortin, Mathieu [1 ]
机构
[1] Canadian Forest Serv, Canadian Wood Fibre Ctr, Ottawa, ON, Canada
关键词
Interoperability; !text type='Java']Java[!/text] local server; TCP/IP connection; R vectorization; !text type='Java']Java[!/text] Native Interface;
D O I
10.7717/peerj-cs.300
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
The R language is widely used for data analysis. However, it does not allow for complex object-oriented implementation and it tends to be slower than other languages such as Java, C and C++. Consequently, it can be more computationally efficient to run native Java code in R. To do this, there exist at least two approaches. One is based on the Java Native Interface (JNI) and it has been successfully implemented in the rJava package. An alternative approach consists of running a local server in Java and linking it to an R environment through a socket connection. This alternative approach has been implemented in an R package called J4R. This article shows how this approach makes it possible to simplify the calls to Java methods and to integrate the R vectorization. The downside is a loss of performance. However, if the vectorization is used in conjunction with multithreading, this loss of performance can be compensated for.
引用
收藏
页数:27
相关论文
共 50 条
  • [1] A versatile support for binding native code to Java']Java
    Bubak, M
    Kurzyniec, D
    Luszczek, P
    HIGH PERFORMANCE COMPUTING AND NETWORKING, PROCEEDINGS, 2000, 1823 : 373 - 384
  • [2] An implementation of an embedded microprocessor core with support for executing byte compiled Java']Java code
    Strom, O
    Aas, EJ
    EUROMICRO SYMPOSIUM ON DIGITAL SYSTEMS DESIGN, PROCEEDINGS, 2001, : 396 - 399
  • [3] A declarative approach for Java']Java code instrumentation
    Zhang, Tian
    Zheng, Xiaomei
    Zhang, Yan
    Zhao, Jianhua
    Li, Xuandong
    SOFTWARE QUALITY JOURNAL, 2015, 23 (01) : 143 - 170
  • [4] A quantitative evaluation of the contribution of native code to Java']Java workloads
    Binder, Walter
    Hulaas, Jarle
    Moret, Philippe
    PROCEEDINGS OF THE IEEE INTERNATIONAL SYMPOSIUM ON WORKLOAD CHARACTERIZATION, 2006, : 201 - +
  • [5] An approach to decomposing assertions into Java']Java code
    Li, T
    Yang, HJ
    Xu, BW
    Shi, L
    IKE '05: PROCEEDINGS OF THE 2005 INTERNATIONAL CONFERENCE ON INFORMATION AND KNOWLEDGE ENGINEERING, 2005, : 185 - 191
  • [6] A Patterns based reverse engineering approach for Java']Java source code
    Couto, Rui
    Ribeiro, Antonio Nestor
    Campos, Jose Creissac
    PROCEEDINGS OF THE 2012 IEEE 35TH SOFTWARE ENGINEERING WORKSHOP (SEW 2012), 2012, : 140 - 147
  • [7] Evaluating the Java']Java Native Interface (JNI): Leveraging Existing Native Code, Libraries and Threads to a Running Java']Java Virtual Machine
    Sotiriadis, Stelios
    Omosebi, Oladotun
    Ayapbergenova, Assem
    Saparkhojayev, Nurbek P.
    INTERNATIONAL JOURNAL OF DISTRIBUTED SYSTEMS AND TECHNOLOGIES, 2018, 9 (02) : 39 - 61
  • [8] Set of tools for native code generation for the Java']Java virtual machine
    Esteire, OA
    Lovelle, JMC
    ACM SIGPLAN NOTICES, 1998, 33 (03) : 73 - 79
  • [9] The r-Java']Java 2.0 code: nuclear physics
    Kostka, M.
    Koning, N.
    Shand, Z.
    Ouyed, R.
    Jaikumar, P.
    ASTRONOMY & ASTROPHYSICS, 2014, 568
  • [10] Java']Java bytecode to native code translation: The caffeine prototype and preliminary results
    Hsieh, CHA
    Gyllenhaal, JC
    Hwu, WMW
    PROCEEDINGS OF THE 29TH ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE - MICRO-29, 1996, : 90 - 97