Basic Usage

Preparation

If you use Vector Engine (VE) on OrchesPy, setup the environment for NLCPy. NLCPy: NumPy-like API accelerated with SX-Aurora TSUBASA

If you use CUDA GPU on OrchesPy, setup the environment for CuPy. CuPy: NumPy & SciPy for GPU

Supported Python Versions

OrchesPy is available from Python version 3.8.

Note

  • OrchesPy is not supported for Python version 3.7 or earlier.

  • This manual is intended for users who will use Python version 3.8.

Import Package

When you use OrchesPy in your Python scripts, the package orchespy must be imported.

  • When running a script using OrchesPy in interactive mode:

    $ python
    >>> import orchespy
    
  • When running a script using OrchesPy in non-interactive mode:

    import orchespy
    

Also import devicetype of orchespy to use device types.

  • When running a script using OrchesPy in interactive mode:

    $ python
    >>> import orchespy.devicetype
    

    or

    $ python
    >>> from orchespy.devicetype import VE
    
  • When running a script using OrchesPy in non-interactive mode:

    import orchespy.devicetype
    

    or

    from orchespy.devicetype import VE
    

After you import orchespy successfully in a Python script, the script can use decorator and function of OrchesPy described in Reference .

Note

If you use Vector Engine (VE) on OrchesPy, you need to execute the environment setup script nlcvars.sh or nlcvars.csh once in advance.

  • When using sh or its variant:

$ source /opt/nec/ve/nlc/X.X.X/bin/nlcvars.sh
  • When using csh or its variant:

% source /opt/nec/ve/nlc/X.X.X/bin/nlcvars.csh

Here, X.X.X denotes the version number of NEC Numeric Library Collection on your x86 node(Vector Host).

An easy example of OrchesPy script is shown below:

>>> import orchespy
>>> from orchespy.devicetype import VE
>>> import numpy as np
>>> x1 = np.arange(9.0).reshape((3, 3))
>>> x2 = orchespy.transfer_array(x1, VE)
>>> type(x2)
<class 'nlcpy.core.core.ndarray'>

If there are multiple same devices and you want to specify the device, describe it as follows.

>>> import orchespy
>>> from orchespy.devicetype import VE
>>> import numpy as np
>>> x1 = np.arange(9.0).reshape((3, 3))
>>> x2 = orchespy.transfer_array(x1, VE(1))
>>> type(x2)
<class 'nlcpy.core.core.ndarray'>
>>> x2.venode.id
1

Details of usage of decorator is described in Decoration of function

Details of usage of function is described in Function

Device Type

OrchesPy provides “Device Type” to specify a device where you want to execute. The current version of OrchesPy provides the following “Device Type” of the orchespy.devicetype class:

Class Name

Device Type

Host

x86 node

VE

Vector Engine

CUDAGPU

CUDA GPU