Unified Communication X (UCX)

Transcription

Unified Communication X (UCX)API StandardVersion 1.10

Contents1234Preface11.1Scope of the Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.2Audience. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.3Document Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.4License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1Introduction32.1Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32.2UCX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3Design53.1UCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53.2UCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53.3UCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6Conventions and Notations74.1Blocking Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74.2Non-blocking Behavior. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74.3Fairness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74.4Interaction with Signal Handler Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75Deprecated List6Module Documentation6.111Unified Communication Protocol (UCP) API. . . . . . . . . . . . . . . . . . . . . . . . . . . . .11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11UCP Application Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126.2.1Detailed Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136.2.2Data Structure Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136.2.2.1struct ucp context attr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136.2.2.2struct ucp tag recv info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136.2.2.3struct ucp request param t . . . . . . . . . . . . . . . . . . . . . . . . . . . .146.2.2.4union ucp request param t.cb . . . . . . . . . . . . . . . . . . . . . . . . . .156.1.16.29Detailed Description

ivCONTENTS6.2.2.5union ucp request param t.recv info . . . . . . . . . . . . . . . . . . . . . . .15Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156.2.3.1ucp context attr t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156.2.3.2ucp tag recv info t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156.2.3.3ucp context h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156.2.3.4ucp request init callback t . . . . . . . . . . . . . . . . . . . . . . . . . . . .166.2.3.5ucp request cleanup callback t . . . . . . . . . . . . . . . . . . . . . . . . .16Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166.2.4.1ucp params field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166.2.4.2ucp feature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166.2.4.3ucp context attr field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176.2.5.1ucp get version() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176.2.5.2ucp get version string() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176.2.5.3ucp init() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186.2.5.4ucp cleanup() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186.2.5.5ucp context query() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196.2.5.6ucp context print info() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19UCP Worker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .206.3.1Detailed Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .226.3.2Data Structure Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .226.3.2.1struct ucp worker attr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .226.3.2.2struct ucp worker params . . . . . . . . . . . . . . . . . . . . . . . . . . . . .236.3.2.3struct ucp listener attr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246.3.2.4struct ucp conn request attr . . . . . . . . . . . . . . . . . . . . . . . . . . .246.3.2.5struct ucp listener params . . . . . . . . . . . . . . . . . . . . . . . . . . . .246.3.2.6struct ucp am handler param. . . . . . . . . . . . . . . . . . . . . . . . . .256.3.2.7struct ucp am recv param . . . . . . . . . . . . . . . . . . . . . . . . . . . .256.3.2.8struct ucp listener accept handler . . . . . . . . . . . . . . . . . . . . . . . .256.3.2.9struct ucp listener conn handler . . . . . . . . . . . . . . . . . . . . . . . . .26Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .266.3.3.1ucp worker attr t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .266.3.3.2ucp worker params t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .266.3.3.3ucp listener attr t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .266.3.3.4ucp conn request attr t. . . . . . . . . . . . . . . . . . . . . . . . . . . . .266.3.3.5ucp listener params t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276.3.3.6ucp am handler param t . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276.3.3.7ucp listener accept handler t. . . . . . . . . . . . . . . . . . . . . . . . . .276.3.3.8ucp am recv param t. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276.3.3.9ucp address t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276.2.36.2.46.2.56.36.3.3c 2021 Unified Communication X (UCX). All rights reserved.

CONTENTS6.3.3.10 ucp listener h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276.3.3.11 ucp worker h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276.3.3.12 ucp listener accept callback t . . . . . . . . . . . . . . . . . . . . . . . . . .286.3.3.13 ucp listener conn callback t . . . . . . . . . . . . . . . . . . . . . . . . . . .286.3.3.14 ucp listener conn handler t . . . . . . . . . . . . . . . . . . . . . . . . . . .286.3.3.15 ucp wakeup event t. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296.3.4.1ucp worker params field . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296.3.4.2ucp listener params field . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296.3.4.3ucp worker address flags t. . . . . . . . . . . . . . . . . . . . . . . . . . .296.3.4.4ucp worker attr field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306.3.4.5ucp listener attr field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306.3.4.6ucp conn request attr field . . . . . . . . . . . . . . . . . . . . . . . . . . . .306.3.4.7ucp am cb flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .316.3.4.8ucp send am flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .316.3.4.9ucp wakeup event types . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326.3.5.1ucp worker create() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326.3.5.2ucp worker destroy() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326.3.5.3ucp worker query() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336.3.5.4ucp worker print info() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336.3.5.5ucp worker get address(). . . . . . . . . . . . . . . . . . . . . . . . . . . .336.3.5.6ucp worker release address() . . . . . . . . . . . . . . . . . . . . . . . . . .346.3.5.7ucp worker progress(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .346.3.5.8ucp stream worker poll() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .356.3.5.9ucp listener create(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .356.3.5.10 ucp listener destroy() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .366.3.5.11 ucp listener query() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .366.3.5.12 ucp conn request query() . . . . . . . . . . . . . . . . . . . . . . . . . . . .366.3.5.13 ucp listener reject() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .376.3.5.14 ucp worker set am handler(). . . . . . . . . . . . . . . . . . . . . . . . . .376.3.5.15 ucp worker set am recv handler() . . . . . . . . . . . . . . . . . . . . . . . .386.3.5.16 ucp worker fence() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .386.3.5.17 ucp worker flush nb() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .396.3.5.18 ucp worker flush nbx() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .396.3.5.19 ucp worker flush() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40UCP Memory routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .416.4.1Detailed Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .426.4.2Data Structure Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .426.4.2.1426.3.46.3.56.4vstruct ucp mem map params . . . . . . . . . . . . . . . . . . . . . . . . . . .c 2021 Unified Communication X (UCX). All rights reserved.

viCONTENTS6.4.2.2struct ucp mem advise params. . . . . . . . . . . . . . . . . . . . . . . . .436.4.2.3struct ucp mem attr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .436.4.3.1ucp mem map params t . . . . . . . . . . . . . . . . . . . . . . . . . . . . .436.4.3.2ucp mem advice t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .446.4.3.3ucp mem advise params t . . . . . . . . . . . . . . . . . . . . . . . . . . . .446.4.3.4ucp rkey h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .446.4.3.5ucp mem h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .446.4.3.6ucp mem attr t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .446.4.4.1ucp mem map params field . . . . . . . . . . . . . . . . . . . . . . . . . . .446.4.4.2ucp mem advise params field . . . . . . . . . . . . . . . . . . . . . . . . . .456.4.4.3anonymous enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .456.4.4.4anonymous enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .456.4.4.5ucp mem advice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .456.4.4.6ucp mem attr field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .466.4.5.1ucp mem map() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .466.4.5.2ucp mem unmap() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .476.4.5.3ucp mem query() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .486.4.5.4ucp mem print info() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .486.4.5.5ucp mem advise() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .486.4.5.6ucp rkey pack() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .496.4.5.7ucp rkey buffer release() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .506.4.5.8ucp ep rkey unpack() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .506.4.5.9ucp rkey ptr() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .506.4.5.10 ucp rkey destroy() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51UCP Wake-up routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .526.5.1Detailed Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .526.5.2Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .526.5.2.1ucp worker get efd() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .526.5.2.2ucp worker wait() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .536.5.2.3ucp worker wait mem() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .536.5.2.4ucp worker arm() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .546.5.2.5ucp worker signal() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55UCP Endpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .566.6.1Detailed Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .576.6.2Data Structure Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .576.6.2.1struct ucp stream poll ep . . . . . . . . . . . . . . . . . . . . . . . . . . . . .576.6.2.2struct ucp ep params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .576.4.36.4.46.4.56.56.6c 2021 Unified Communication X (UCX). All rights reserved.

CONTENTS6.6.3Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .586.6.3.1ucp stream poll ep t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .586.6.3.2ucp ep h. . .

CONTENTS v 6.3.3.10 ucp_listener_h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.3.3.11 ucp_worker_h .