| 702 | | |
| 703 | | |
| | 702 | === communication `comm` === |
| | 703 | * Types |
| | 704 | * `Message` |
| | 705 | * `Queue` |
| | 706 | * `GComm` |
| | 707 | * `Comm` |
| | 708 | |
| | 709 | * message operations |
| | 710 | * pack a message: `fun[lib="comm"] $message_pack(src: Integer, dst: Integer, tag: Integer, dt: Pointer, sz: Integer): Message` |
| | 711 | * unpack a message: `fun[lib="comm"] $message_unpack(msg: Message, buf: Pointer, sz: Integer)` |
| | 712 | * source of a message: `fun[lib="comm", pure] $message_source(msg: Message): Integer` |
| | 713 | * tag of a message: `fun[lib="comm", pure] $message_tag(msg: Message): Integer` |
| | 714 | * destination of a message: `fun[lib="comm", pure] $message_dest(msg: Message): Integer` |
| | 715 | * size of a message: `fun[lib="comm", pure] $message_size(msg: Message): Integer` |
| | 716 | |
| | 717 | * global communicator operations |
| | 718 | * creation: `fun[lib="comm"] $gcomm_create(scope: Scope, size: Integer): GComm` |
| | 719 | * destroy: `fun[lib="comm"] $gcomm_destroy(gcomm: GComm)` |
| | 720 | * duplication: `fun[lib="comm"] $gcomm_dup(old: Comm, new: Comm)` |
| | 721 | |
| | 722 | * local communicator operations |
| | 723 | * creation: `fun[lib="comm"] $comm_create(scope: Scope, gcomm: GComm, place: Integer): Comm` |
| | 724 | * destroy: `fun[lib="comm"] $comm_destroy(comm: Comm)` |
| | 725 | * get size: `fun[lib="comm", pure] $comm_size(comm: Comm): Integer` |
| | 726 | * get place: `fun[lib="comm", pure] $comm_place(comm: Comm): Integer` |
| | 727 | * enqueue: `fun[lib="comm"] $comm_enqueue(comm: Comm, msg: Message)` |
| | 728 | * probe: `fun[lib="comm", pure] $comm_probe(comm: Comm, src: Integer, tag: Integer): Bool` |
| | 729 | * seek: `fun[lib="comm"] $comm_seek(comm: Comm, src: Integer, tag: Integer): Message` |
| | 730 | * dequeue: `fun[lib="comm"] $comm_dequeue(comm: Comm, src: Integer, tag: Integer): Message` |
| | 731 | |
| | 732 | === domain utility `domain` === |
| | 733 | |
| | 734 | * Types: `Domain_strategy` and `Domain_decomposition` |
| | 735 | |
| | 736 | * domain decomposition: `fun[lib="domain"] $domain_partition(dom: Domain, s: Domain_strategy, n: Integer): Domain_decomposition` |
| | 737 | * check if domain is rectangular: `funl[lib="domain"] $is_rectangular_domain(dom: Domain): Bool` |
| | 738 | * get dimension: `fun[lib="domain", pure] $dimension_of(dom: Domain): Integer` |
| | 739 | |
| | 740 | === sequence operations `seq` === |
| | 741 | * sequence initialization |
| | 742 | |
| | 743 | `fun[lib="seq"] $seq_init(seq: Pointer, count: Integer, value: Pointer)` |
| | 744 | |
| | 745 | given a pointer to an object of `Array[T]`, sets that object to be the array of length count in which every element has the same value, specified by the given pointer value.Parameters: |
| | 746 | 1. array: pointer-to-incomplete-array-of-T |
| | 747 | 1. count: any integer type, must be nonnegative |
| | 748 | 1.value: pointer-to-T |
| | 749 | |
| | 750 | * length of sequence |
| | 751 | |
| | 752 | `fun[lib="seq", pure] $seq_length(seq: Pointer): Integer` |
| | 753 | |
| | 754 | * insertion |
| | 755 | |
| | 756 | `fun[lib="seq"] $seq_insert(seq: Pointer, index: Integer, values: Pointer, count: Integer)` |
| | 757 | |
| | 758 | * removal |
| | 759 | |
| | 760 | `fun[lib="seq"] $seq_remove(seq: Pointer, index: Integer, values: Pointer, count: Integer)` |
| | 761 | |
| | 762 | * appending |
| | 763 | |
| | 764 | `fun[lib="seq"] $seq_append(seq: Pointer, values: Pointer, count: Integer)` |