[ewg] RE: [PATCH] update perftest README

Vladimir Sokolovsky vlad at mellanox.co.il
Tue Feb 19 08:08:00 PST 2008


Pulled into OEFD-1.3


Regards,
Vladimir


> -----Original Message-----
> From: Oren Meron [mailto:orenmeron at dev.mellanox.co.il]
> Sent: Tuesday, February 19, 2008 5:47 PM
> To: Vladimir Sokolovsky
> Cc: ewg at lists.openfabrics.org; Sagi Rotem
> Subject: [PATCH] update perftest README
> 
> Update README
> 
> Signed-off-by: Oren Meron <orenmeron at dev.mellanox.co.il>
> 
> --- a/README
> +++ b/README
> @@ -1,37 +1,52 @@
> -This directory includes gen2 uverbs micro-benchmarks.
> +            Open Fabrics Enterprise Distribution (OFED)
> +                Performance Tests README for OFED 1.2
> +
> +                         February 2008
> 
> -The tests are intended as:
> -       1) simple, efficient usage examples.
> -               Please see the COPYING file if you intend to copy it
> literally.
> 
> -       2) a useful benchmark
> -               e.g. for HW or SW tuning and/or functional testing.
> -               Please post results/observations to the openib-general
> mailing
> -               list. See http://openib.org/mailman/listinfo/openib-
> general
> -               and http://www.openib.org "Contact Us" link for
contact
> details.
> 
>
+======================================================================
> =========
> +Table of Contents
>
+======================================================================
> =========
> +1. Overview
> +2. Notes on Testing Methodology
> +3. Test Descriptions
> +4. Running Tests
> 
> -Testing methodology
> --------------------
>
+======================================================================
> =========
> +1. Overview
>
+======================================================================
> =========
> +This is a collection of tests written over uverbs intended for use as
> a
> +performance micro-benchmark. As an example, the tests can be used for
> +HW or SW tuning and/or functional testing.
> 
> -- uses CPU cycle counter to get time stamps without context switch.
> -  Some CPU architectures do NOT have such capability. e.g. Intel
80486
> -  or older PPC.
> +Please post results/observations to the openib-general mailing list.
> +See "Contact Us" at http://openib.org/mailman/listinfo/openib-general
> and
> +http://www.openib.org.
> 
> -- measures round-trip time but reports half of that as one-way
> latency.
> -  ie. May not be sufficiently accurate for asymmetrical
> configurations.
> +
>
+======================================================================
> =========
> +2. Notes on Testing Methodology
>
+======================================================================
> =========
> +- The benchmark used the CPU cycle counter to get time stamps without
> context
> +  switch.  Some CPU architectures (e.g., Intel's 80486 or older PPC)
> do NOT
> +  have such capability.
> +
> +- The benchmark measures round-trip time but reports half of that as
> one-way
> +  latency. This means that it may not be sufficiently accurate for
> asymmetrical
> +  configurations.
> 
>  - Min/Median/Max result is reported.
>    The median (vs average) is less sensitive to extreme scores.
> -  Typically the "Max" value is the first value measured.
> +  Typically, the "Max" value is the first value measured.
> 
> -- larger samples only marginally help. The default (1000) is pretty
> good.
> +- Larger samples help marginally only. The default (1000) is pretty
> good.
>    Note that an array of cycles_t (typically unsigned long) is
> allocated
>    once to collect samples and again to store the difference between
> them.
> -  Really big sample sizes (e.g. 1 million) might expose other
problems
> +  Really big sample sizes (e.g., 1 million) might expose other
> problems
>    with the program.
> 
> -- "-H" option will dump the histogram for additional statistical
> analysis.
> +- The "-H" option will dump the histogram for additional statistical
> analysis.
>    See xgraph, ygraph, r-base (http://www.r-project.org/), pspp, or
> other
>    statistical math programs.
> 
> @@ -39,79 +54,68 @@ Architectures tested:       i686, x86_64, ia64
> 
> 
> 
> -Test Descriptions
> ------------------
>
+======================================================================
> =========
> +4. Test Descriptions
>
+======================================================================
> =========
> 
> -rdma_lat.c - latency test with RDMA write transactions
> -rdma_bw.c - streaming BW test with RDMA write transactions
> +rdma_lat.c     latency test with RDMA write transactions
> +rdma_bw.c      streaming BW test with RDMA write transactions
> 
> 
>  The following tests are mainly useful for HW/SW benchmarking.
>  They are not intended as actual usage examples.
> ------------------
> -
> -send_lat.c - latency test with send transactions
> -send_bw.c - BW test with send transactions
> -write_lat.c - latency test with RDMA write transactions
> -write_bw.c - BW test with RDMA write transactions
> -read_lat.c - latency test with RDMA read transactions
> -read_bw.c - BW test with RDMA read transactions
> -
> -Test's executable name starts with the general prefix ib_ (e.g.
> ib_write_lat).
> 
> -Build Tests
> ------------
> +send_lat.c     latency test with send transactions
> +send_bw.c      BW test with send transactions
> +write_lat.c    latency test with RDMA write transactions
> +write_bw.c     BW test with RDMA write transactions
> +read_lat.c     latency test with RDMA read transactions
> +read_bw.c      BW test with RDMA read transactions
> 
> -"make" to build all tests
> +The executable name of each test starts with the general prefix
"ib_",
> +e.g., ib_write_lat.
> 
> -       Debian: build-dep on linux-kernel-headers (for asm/timex.h
> file)
> -               build-dep on libibverbs-dev
> -               depends on libibverbs1
> -
> -
> -Run Tests
> ----------
> +Running Tests
> +-------------
> 
>  Prerequisites:
>         kernel 2.6
>         ib_uverbs (kernel module) matches libibverbs
> -               ("match" means binary compatible, but ideally same SVN
> rev)
> -       Debian: dpkg -i libibverbs1_0.1.0-1_ia64.deb
> +               ("match" means binary compatible, but ideally of the
> same SVN rev)
> 
>  Server:                ./<test name> <options>
>  Client:                ./<test name> <options> <server IP address>
> 
> -       o IMPORTANT: The SAME OPTIONS must be passed to both server
and
> client.
> -       o "--help" will list the available <options>.
> -       o <server address> is IPv4 or IPv6 address.
> -         You can use the IPoIB address if you have IPoIB configured.
> -
> -Common Options to all tests:
> -  -p, --port=<port>            listen on/connect to port <port>
> (default 18515)
> -  -m, --mtu=<mtu>              mtu size (default 1024)
> -  -d, --ib-dev=<dev>           use IB device <dev> (default first
> device found)
> -  -i, --ib-port=<port>         use port <port> of IB device (default
> 1)
> -  -s, --size=<size>            size of message to exchange (default
1)
> -  -a, --all                    Run sizes from 2 till 2^23
> -  -t, --tx-depth=<dep>         size of tx queue (default 50)
> -  -n, --iters=<iters>          number of exchanges (at least 100,
> default 1000)
> -  -C, --report-cycles          report times in cpu cycle units
> (default microseconds)
> -  -H, --report-histogram       print out all results (default print
> summary only)
> -  -U, --report-unsorted        (implies -H) print out unsorted
results
> (default sorted)
> +               o  <server address> is IPv4 or IPv6 address. You can
> use the IPoIB
> +                   address if IPoIB is configured.
> +               o  --help lists the available <options>
> +
> +  *** IMPORTANT NOTE: The SAME OPTIONS must be passed to both server
> and client.
> +
> +
> +Common Options to tests:
> +  -p, --port=<port>            listen on/connect to port <port>
> (default: 18515)
> +  -m, --mtu=<mtu>              mtu size (default: 1024)
> +  -d, --ib-dev=<dev>           use IB device <dev> (default: first
> device found)
> +  -i, --ib-port=<port>         use port <port> of IB device (default:
> 1)
> +  -s, --size=<size>            size of message to exchange (default:
> 1)
> +  -a, --all                    run sizes from 2 till 2^23
> +  -t, --tx-depth=<dep>         size of tx queue (default: 50)
> +  -g, --mcg                    send messages to multicast group
0xc001
> (only available in send-UD)
> +  -n, --iters=<iters>          number of exchanges (at least 100,
> default: 1000)
> +  -C, --report-cycles          report times in cpu cycle units
> (default: microseconds)
> +  -H, --report-histogram       print out all results (default: print
> summary only)
> +  -U, --report-unsorted        (implies -H) print out unsorted
results
> (default: sorted)
>    -V, --version                display version number
>    -I, --inline_size=<size>     max size of message to be sent in
> inline mode (default 400)
> + .-N, --no peak-bw             cancel peak-bw calculation (default:
> peak-bw. only available in write_bw)
> 
> -You need to be running a Subnet Manager on the switch or one of the
> nodes
> -in your fabric. To use the opensm tool for this purpose, run
> -       modprobe ib_umad
> -       opensm &
> -on one of the nodes
> -
> -First load ib_uverbs on both client and server with something like:
> -       modprobe ib_uverbs
> +  *** IMPORTANT NOTE: You need to be running a Subnet Manager on the
> switch or
> +                     on one of the nodes in your fabric.
> 
> -Then (e.g.) "ib_rdma_lat -C" on the server side.
> -Lastly "ib_rdma_lat -C 10.0.1.31" on the client.
> +Example:
> +Run "ib_rdma_lat -C" on the server side.
> +Then run "ib_rdma_lat -C <server IP address>" on the client.
> 
>  ib_rdma_lat will exit on both server and client after printing
> results.



More information about the ewg mailing list