by Vijay Tatkar
Open API libraries enable you to programmatically access the Data Analytics Accelerator (DAX) coprocessors in Oracle's SPARC processors.
What Is DAX?
Oracle's newly released SPARC processor–based servers and engineered systems introduce many Software in Silicon (SWiS) features. These SWiS features implement higher-level software functions directly into the processor logic, which significantly enhances performance and security.
One of the most exciting new capabilities of the SWiS innovations is the Data Analytics Accelerator (DAX). DAX is specialized hardware that is built into the processor and is designed to radically improve performance of analytics-related algorithms. For more information about DAX, see "What Is the SPARC M7 Data Analytics Accelerator?"
Open API Libraries
You can programmatically access DAX by using the following open API libraries.
The libdax library provides access to DAX and is available as the libdax.so.1 shared library. Some of the operations that you can perform by using the libdax library are as follows:
- Select elements from a data stream
- Scan the input elements in a data stream and compare them with a specified value
- Decompress or unpack a data stream
- Translate input elements in a data stream based on a lookup table
- Log the activities of the functions in the library
- Compute logical AND, OR, and XOR for the elements in a data stream
- Perform asynchronous DAX operations
The libdax library is thread-safe. It also allows you to add DTrace probes to gather data that you can use for debugging, performance analysis, and tuning.
For the complete list of functions available in the libdax library, see the dax.h
header file (requires login).
For information on stream processing using the libdax library, see "Introduction to Stream Processing Using the DAX API."
The vector library abstracts the DAX operands as vectors and, hence, allows you to perform vector operations on the DAX operands. This library internally uses the libdax APIs to interact with DAX. Some of the operations that you can perform by using the vector library are as follows:
- Create vector objects from files
- Create vector objects from arrays in memory
- Destroy a vector
- Compare vectors
- Filter a vector based on a condition
- Get the type, count, and length of a vector
For the complete list of functions available in the vector library, see the vector.h
header file (requires login).
The vector library is available in the C, C++, Java (JNI), Python, and SQL languages.
Feedback and Continuous Improvements
Oracle is constantly looking for your feedback to improve upon these APIs. Please use the swisdev_help_ww_grp@oracle.com support alias to provide feedback or ask questions about the APIs.
See Also
About the Author
Vijay Tatkar is director of Oracle's ISV Engineering group and has over 27 years of experience at Sun and Oracle. Currently, his worldwide team works with independent software vendors (ISVs) to drive adoption and integration of Oracle systems technologies to build a strong ecosystem for Oracle Solaris and SPARC platforms. ISV Engineering collaborates with partners by defining joint roadmaps and engineering projects that create compelling, differentiated solutions. Tatkar also leads the Open API DAX engineering initiative. Prior to joining ISV Engineering, he managed the development of compilers, the Oracle Enterprise Developer Studio Performance Analyzer and Code Analyzer tools, and the cloud computing initiative at Sun.