Additional API Calls in libVTcs
- client is initialized first, which produces a contact string that must be passed to the server (*contact == NULL)
- the server was started first, its contact string is passed to the clients (*contact == <result of VT_serverinit() with the prefix "S" - this prefix must be added by the application>)
- a process spawns children dynamically, its contact string is given to its children (*contact == <result of VT_serverinit() or VT_clientinit()>)
All clients must be enumerated by the application. This will become the process id of the local client inside its
VT_COMM_WORLD. If the VTserver is used, then enumeration must start at 1 because VTserver always gets rank 0. Threads can be enumerated automatically by Intel® Trace Collector or by the client by calling
The name of the client. Currently only used for error messages. Copied by Intel® Trace Collector.
Will be set to a string which tells other processes how to contact this process. Guaranteed not to contain spaces. The client may copy this string, but doesn't have to, because Intel® Trace Collector will not free this string until
- Collect all information from the clients and pass them here (numcontacts>=0,contacts!=NULL)
- Start the server first, pass its contact string to the clients (numcontacts>=0,contacts==NULL)
similar to clientname in
VT_clientinit(): the name of the server. Currently only used for error messages. Copied by Intel® Trace Collector.
number of client processes
contact string for each client process (order is irrelevant); copied by Intel® Trace Collector
will be set to a string which tells spawned children how to contact this server. Guaranteed not to contain spaces. The server may copy this string, but doesn't have to, because Intel® Trace Collector will not free this string until
contactmust have been set to
NULLbefore calling this function.
rank of the process that the spawned processes will contact
VT_COMM_WORLD: in the first case root must be
0and the spawned processes are connected to just the calling process. In the latter case all processes that share this
VT_attach()and are included in the new communicator.
rootthen indicates whose contact infos were given to the children.
number of children that the spawning processes will wait for
an identifier for a new communicator that includes the parent processes in the same order as in their
VT_COMM_WORLD, followed by the child processes in the order specified by their
VT_clientinit(). The spawned processes will have access to this communicator through
set to the communicator number that can be used to log communication with parents