We're (finally) bringing full hwloc services up in Open MPI.

One of the things we want to do is send server topologies from back-end compute 
nodes to the front-end node.  The XML export/import functionality would work 
for this, but a) it's a bit heavyweight, and b) it seems weird to require XML 
to build MPI.

Is there any chance that a lighter-weight, simple string parsing module could 
be added to hwloc?  I'm guessing that we could save a modest amount of string 
space (SWAG: 20%?), but we wouldn't need a dependency on libxml, which would be 
good.

I took a lstopo --no-io foo.xml output on an older xeon machine and, while 
sitting on a boring teleconf, I manually converted it in emacs to a (slightly) 
simpler text format.  I attached the two files.  There's a modest space savings 
(about 17%).  But libxml clearly would not be necessary.

Do you think this would be easy to implement?

-- 
Jeff Squyres
[email protected]
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/

Attachment: foo.xml
Description: XML document

topology
version=1.2.1
object
type=Machine
os_level=-1
os_index=0
cpuset=cpuset=0x000000ff
complete_cpuset=0x000000ff
online_cpuset=0x000000ff
allowed_cpuset=0x000000ff
local_memory=4136591360
page_type
size=4096
count=1009910
end
page_type
size=2097152
count=0
end
info
name=Backend
value=Linux
end
info
name=OSName
value=Linux
end
info
name=OSRelease
value=2.6.18-164.el5
end
info
name=OSVersion
value=#1 SMP Tue Aug 18 15:51:48 EDT 2009
end
info
name=HostName
value=svbu-mpi.cisco.com
end
info
name=Architecture
value=x86_64
end
object
type=Socket
os_level=-1
os_index=0
cpuset=0x00000055
complete_cpuset=0x00000055
online_cpuset=0x00000055
allowed_cpuset=0x00000055
end
object
type=Cache
os_level=-1
cpuset=0x00000011
complete_cpuset=0x00000011
online_cpuset=0x00000011
allowed_cpuset=0x00000011
cache_size=2097152
depth=2
cache_linesize=64
cache_associativity=8
end
object
type=Cache
os_level=-1
cpuset=0x00000011
complete_cpuset=0x00000011
online_cpuset=0x00000011
allowed_cpuset=0x00000011
cache_size=16384
depth=1
cache_linesize=64
cache_associativity=8
end
object
type=Core
os_level=-1
os_index=0
cpuset=0x00000011
complete_cpuset=0x00000011
online_cpuset=0x00000011
allowed_cpuset=0x00000011
end
object
type=PU
os_level=-1
os_index=0
cpuset=0x00000001
complete_cpuset=0x00000001
online_cpuset=0x00000001
allowed_cpuset=0x00000001
end
object
type=PU
os_level=-1
os_index=4
cpuset=0x00000010
complete_cpuset=0x00000010
online_cpuset=0x00000010
allowed_cpuset=0x00000010
end
end
end
end
object
type=Cache
os_level=-1
cpuset=0x00000044
complete_cpuset=0x00000044
online_cpuset=0x00000044
allowed_cpuset=0x00000044
cache_size=2097152
depth=2
cache_linesize=64
cache_associativity=8
end
object
type=Cache
os_level=-1
cpuset=0x00000044
complete_cpuset=0x00000044
online_cpuset=0x00000044
allowed_cpuset=0x00000044
cache_size=16384
depth=1
cache_linesize=64
cache_associativity=8
end
object
type=Core
os_level=-1
os_index=1
cpuset=0x00000044
complete_cpuset=0x00000044
online_cpuset=0x00000044
allowed_cpuset=0x00000044
end
object
type=PU
os_level=-1
os_index=2
cpuset=0x00000004
complete_cpuset=0x00000004
online_cpuset=0x00000004
allowed_cpuset=0x00000004
end
object
type=PU
os_level=-1
os_index=6
cpuset=0x00000040
complete_cpuset=0x00000040
online_cpuset=0x00000040
allowed_cpuset=0x00000040
end
end
end
end
end
object
type=Socket
os_level=-1
os_index=1
cpuset=0x000000aa
complete_cpuset=0x000000aa
online_cpuset=0x000000aa
allowed_cpuset=0x000000aa
end
object
type=Cache
os_level=-1
cpuset=0x00000022
complete_cpuset=0x00000022
online_cpuset=0x00000022
allowed_cpuset=0x00000022
cache_size=2097152
depth=2
cache_linesize=64
cache_associativity=8
end
object
type=Cache
os_level=-1
cpuset=0x00000022
complete_cpuset=0x00000022
online_cpuset=0x00000022
allowed_cpuset=0x00000022
cache_size=16384
depth=1
cache_linesize=64
cache_associativity=8
end
object
type=Core
os_level=-1
os_index=0
cpuset=0x00000022
complete_cpuset=0x00000022
online_cpuset=0x00000022
allowed_cpuset=0x00000022
end
object
type=PU
os_level=-1
os_index=1
cpuset=0x00000002
complete_cpuset=0x00000002
online_cpuset=0x00000002
allowed_cpuset=0x00000002
end
object
type=PU
os_level=-1
os_index=5
cpuset=0x00000020
complete_cpuset=0x00000020
online_cpuset=0x00000020
allowed_cpuset=0x00000020
end
end
end
end
object
type=Cache
os_level=-1
cpuset=0x00000088
complete_cpuset=0x00000088
online_cpuset=0x00000088
allowed_cpuset=0x00000088
cache_size=2097152
depth=2
cache_linesize=64
cache_associativity=8
end
object
type=Cache
os_level=-1
cpuset=0x00000088
complete_cpuset=0x00000088
online_cpuset=0x00000088
allowed_cpuset=0x00000088
cache_size=16384
depth=1
cache_linesize=64
cache_associativity=8
end
object
type=Core
os_level=-1
os_index=1
cpuset=0x00000088
complete_cpuset=0x00000088
online_cpuset=0x00000088
allowed_cpuset=0x00000088
end
object
type=PU
os_level=-1
os_index=3
cpuset=0x00000008
complete_cpuset=0x00000008
online_cpuset=0x00000008
allowed_cpuset=0x00000008
end
object
type=PU
os_level=-1
os_index=7
cpuset=0x00000080
complete_cpuset=0x00000080
online_cpuset=0x00000080
allowed_cpuset=0x00000080
end
end
end
end
end
end
end

Reply via email to