ltot man page on YellowDog

Man page or keyword search:  
man Server   18644 pages
apropos Keyword Search (all sections)
Output format
YellowDog logo
[printable version]

TTOL(3)			      LAM NETWORK LIBRARY		       TTOL(3)

NAME
       ttol, ltot, mttol, mltot - LAM data representation translation suite

C SYNOPSIS
       #include <portable.h>
       #include <t_types.h>

       void ttoli4 (int4 *pvar1, int4 *pvar2);
       void ltoti4 (int4 *pvar1, int4 *pvar2);
       void ttoli2 (int2 *pvar1, int2 *pvar2);
       void ltoti2 (int2 *pvar1, int2 *pvar2);
       void ttolf4 (float4 *pvar1, float4 *pvar2);
       void ltotf4 (float4 *pvar1, float4 *pvar2);
       void ttolf8 (float8 *pvar1, float8 *pvar2);
       void ltotf8 (float8 *pvar1, float8 *pvar2);

       void mttoli4 (int4 *array, int num);
       void mltoti4 (int4 *array, int num);
       void mttoli2 (int2 *array, int num);
       void mltoti2 (int2 *array, int num);
       void mttolf4 (float4 *array, int num);
       void mltotf4 (float4 *array, int num);
       void mttolf8 (float8 *array, int num);
       void mltotf8 (float8 *array, int num);

FORTRAN SYNOPSIS
       subroutine F4LTOT (lvar, tvar)
       subroutine F4TTOL (tvar, lvar)
       real*4 lvar, tvar

       subroutine F8LTOT (lvar, tvar)
       subroutine F8TTOL (tvar, lvar)
       real*8 lvar, tvar

       subroutine I4LTOT (lvar, tvar)
       subroutine I4TTOL (tvar, lvar)
       integer*4 lvar, tvar

       subroutine I2LTOT (lvar, tvar)
       subroutine I2TTOL (tvar, lvar)
       integer*2 tvar, lvar

       subroutine F4MLTT (array, num)
       subroutine F4MTTL (array, num)
       real*4 array(*)
       integer num

       subroutine F8MLTT (array, num)
       subroutine F8MTTL (array, num)
       real*8 array(*)
       integer num

       subroutine I4MLTT (array, num)
       subroutine I4MTTL (array, num)
       integer*4 array(*)
       integer num

       subroutine I2MLTT (array, num)
       subroutine I2MTTL (array, num)
       integer*2 array(*)
       integer num

DESCRIPTION
       The number and order of bytes in a word may differ between nodes in any
       LAM network.  The representation of floating  point  numbers  may  also
       vary.   To  transfer  message  and file data correctly, both sender and
       receiver in a LAM network must  agree  on  the  amount  of  data	 being
       exchanged and its representation.  A simple solution to these two prob‐
       lems is to define a standard representation  and	 require  senders  and
       receivers  to  convert  their  data  from/to  the  local representation
       to/from the standard format.  Conversion is not necessary if the commu‐
       nicating	 processes  are on the same node, but it keeps the code porta‐
       ble.

       The LAM header file <portable.h> defines fixed size C  types  for  each
       supported  architecture.	  Fortran  already  has the ability to declare
       variable precision.

       int4	 4-byte wide signed integer

       uint4	 4-byte wide unsigned integer

       int2	 2-byte wide signed integer

       uint2	 2-byte wide unsigned integer

       float4	 4-byte wide floating point number

       float8	 8-byte wide floating point number

       Programmers wishing to write portable LAM code that can run on  hetero‐
       geneous	architectures  are urged to use these data types for all vari‐
       ables that are communicated across node boundaries.  To gain  computing
       speed,  programmers  may	 wish to transfer the communicated data to the
       appropriate native data type on the local CPU in order to benefit  from
       its  faster  access  of	word-sized variables.  Following this approach
       solves the data size problem.

       The LAM header file <t_types.h>	defines	 functions  that  convert  the
       order  of  bytes	 between  the local representation, regardless of what
       that is, and a standard (LAM) representation.  The functions are	 meant
       to  be used in conjunction with the data types defined in <portable.h>.
       If no conversion is necessary,  the  functions  will  have  no  effect.
       These  functions	 are  implemented as macros and should not be accessed
       through pointers to functions.

       When sending messages between heterogeneous  nodes,  both  the  message
       body  (i.e.  what  is in the nh_msg field of the network message struc‐
       ture; see nsend(2)) and the message data pouch (i.e.  what  is  in  the
       nh_data	field  of  the	network	 message structure) must be converted.
       Other fields in the message envelope are automatically  converted  when
       the  message  is	 passed.   Data conversion functions should be used by
       both the sending and receiving processes.   Data	 should	 be  converted
       from  local to LAM representation before sending, and from LAM to local
       representation after receiving.

       As an alternative to the byte-order translation functions, the program‐
       mer  can	 set  various bits in the nh_flags field to convert the nh_msg
       and/or  the  nh_data  data  in  other  than  the	 default  manner  (see
       nsend(2)).   The	 default  assumption  is that nh_data is an array of 8
       int4 integers and that nh_msg contains raw bytes.

       File data should be converted from local to LAM	representation	before
       writing, and from LAM to local representation after reading.

       The conversion functions are:

       ttoli4()	 Convert an int4 from LAM to local representation.

       ltoti4()	 Convert an int4 from local to LAM representation.

       ttoli2()	 Convert an int2 from LAM to local representation.

       ltoti2()	 Convert an int2 from local to LAM representation.

       ttolf4()	 Convert a float4 from LAM to local representation.

       ltotf4()	 Convert a float4 from local to LAM representation.

       ttolf8()	 Convert a float8 from LAM to local representation.

       ltotf8()	 Convert a float8 from local to LAM representation.

       mttoli4() Convert an array of int4s from LAM to local representation.

       mltoti4() Convert an array of int4s from local to LAM representation.

       mttoli2() Convert an array of int2s from LAM to local representation.

       mltoti2() Convert an array of int2s from local to LAM representation.

       mttolf4() Convert an array of float4s from LAM to local representation.

       mltotf4() Convert an array of float4s from local to LAM representation.

       mttolf8() Convert an array of float8s from LAM to local representation.

       mltotf8() Convert an array of float8s from local to LAM representation.

       The single element conversion functions accept two arguments:

       pvar1	 pointer to a variable of the required type holding the origi‐
		 nal data to be converted

       pvar2	 pointer to a variable of the required type where the  result‐
		 ing converted data is returned

       The original data is not modified.  The two pointers may be the same if
       the conversion is to be done "in place".	 The multiple element  conver‐
       sion functions accept two arguments:

       array	 pointer  to  the  base	 of  an	 array of data elements of the
		 required type

       num	 the number of data elements in the array

       Before the call, the array holds the data to be converted.   After  the
       function	 returns,  the array holds the converted data.	The array con‐
       version functions can only convert data "in place".

   Incompatible Word Lengths
       Some CPUs do not support all data type  sizes.	As  an	example,  Cray
       machines	 can  access  4-byte  and  8-byte integers and 8-byte floating
       point numbers, but do not access 2-byte	integers  or  4-byte  floating
       point  numbers.	 Until another solution is offered, when such machines
       are used in a LAM network it is advised	to  constrain  the  data  type
       choices to those available on all CPUs (i.e. to follow the least common
       denominator approach).

SEE ALSO
       nsend(2)

LAM 7.1.2			  March, 2006			       TTOL(3)
[top]

List of man pages available for YellowDog

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net