BACKGROUND

The present disclosure relates generally to information handling systems, and more particularly to performing multiple operations on data in information handling systems using data multi-operation graphs.

As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.

Information handling systems such as server devices and/or other computing systems known in the art may include applications that require the performance of operations on data accessible to their server device. For example, storage applications (e.g., Software Defined Storage (SDS) applications in a server device) may require multiple operations to be performed on first data that is stored at a source location to provide second data that is stored at a destination location. Conventional storage applications have traditionally performed each of those multiple operations in software, but the implementation of faster storage devices (e.g., Non-Volatile Memory express (NVMe) storage devices), faster networks, and/or other technology has begun to create a bottleneck at the storage application performing such software-based operations. Conventional solutions to such issues has been to move from the purely software-defined paradigm discussed above to a hardware-accelerated software-defined paradigm that provides hardware accelerator devices that offload the performance of such operations from the storage applications. For example, SmartNIC devices have been introduced that allow the storage applications request the use of hardware accelerator devices included on and/or accessible to the SmartNIC device for performing the multiple operations on data discussed above.

However, in conventional hardware-accelerated software-defined systems, each hardware accelerator device includes a separate interface (e.g., via an Software Development Kit (SDK)) that must be invoked by the storage application each time the operation performed by that hardware accelerator device must be performed on data. As such, when multiple operations (e.g., compression operations, encryption operations, checksum operations, hash operations, data movement operations, RAID operations, XOR operations, erasure coding operations, text search operations, machine learning inference operations, etc.) must be performed on data, the storage application must make a separate operation performance call to the SmartNIC device to utilize each hardware accelerator device (e.g., a first call to utilize a compression operation hardware accelerator device, a second call to utilize an encryption operation hardware accelerator device, a third call to utilize a checksum operation hardware accelerator device, a fourth call to utilize a hash operation hardware accelerator device, a fifth call to utilize a data movement operation hardware accelerator device, a sixth call to utilize a RAID operation hardware accelerator device, a seventh call to utilize an XOR operation hardware accelerator device, an eighth call to utilize an erasure coding operation hardware accelerator device, a ninth call to utilize a text search hardware accelerator device, a tenth call to utilize a machine learning inference operation hardware accelerator device, etc.), and the SmartNIC device must subsequent perform an interrupt to the storage application to report the completion of the respective operation performance by each of those hardware accelerator devices. As will be appreciated by one of skill in the art in possession of the present disclosure, the separate interactions between the storage application, SmartNIC device, and hardware accelerator devices requires hardware accelerator device vendor-specific and custom hardware integrations that increase costs and can have negative effects on the performance of the storage applications.

Accordingly, it would be desirable to provide a data multi-operation system that addresses the issues discussed above.

SUMMARY

According to one embodiment, an Information Handling System (IHS) includes a processing subsystem; and a memory subsystem that is coupled to the processing subsystem and that includes instructions that, when executed by the processing subsystem, cause the processing subsystem to provide a data multi-operation management engine that is configured to: receive, from an application, a data multi-operation graph that identifies first data and defines a plurality of operations for performance on the first data to transform the first data into second data; assign each of the plurality of operations defined by the data multi-operation graph to at least one of a plurality of accelerator systems coupled to the processing system; configure the plurality of accelerator subsystems to perform the plurality of operations defined by the data multi-operation graph in a sequence that transforms the first data into the second data; determine a completion status for the performance of the plurality of operations by the plurality of accelerator subsystems to transform the first data into the second data; and transmit, to the application, a completion status communication that indicates the completion status of the performance of the plurality of operations by the plurality of accelerator subsystems to transform the first data into the second data.

