|
[Date Index]
[Thread Index]
[Author Index]
Re: Does Mathematica 5 use multiple processors on SPARC?
- To: mathgroup at smc.vnet.net
- Subject: [mg55201] Re: Does Mathematica 5 use multiple processors on SPARC?
- From: Dave <nospam at nowhere.com>
- Date: Wed, 16 Mar 2005 05:36:42 -0500 (EST)
- References: <200503140843.DAA27103@smc.vnet.net> <d15rvl$9j9$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Igor Antonio wrote:
> Dave wrote:
>
>>I assume this technical FAQ
>>
>>http://support.wolfram.com/mathematica/systems/allplatforms/multipleprocessors.html
>>
>>is out of date since it says "The current version of Mathematica does
>>not take direct advantage of multiple processors on any platform"
>>
>>whereas
>>
>>http://www.wolfram.com/products/mathematica/newin5/performance/
>>
>>says "Mathematica 5 also takes advantage of multiple processors for a
>>range of numerical operations on those operating systems such as Linux,
>>Windows, and HP-UX that support this multithreaded capability."
>>
>>Now my question is does Mathematica 5 support multiple processors on
>>Solaris? Since the kernel code is very similar across platforms, I
>>assume it does, although it is odd to mention HP-UX and not Solaris,
>>when the latter is probably used much more.
>>
>>
>
>
> Dave,
>
> Solaris, AIX, SGI, and Linux x86-64 don't use threaded libraries, so
> numerical operations (the ones that use BLAS libraries for example) will
> not take advantage of multiple processors.
>
>
> Igor Antonio
> Wolfram Research, Inc.
> http://www.wolfram.com
>
> To email me personally, remove the dash.
>
What exactly to you mean by 'threaded libraries'?
I just did a 'man -k thread' on a standard Solaris box, and see there
are numerous thread related libraries - see output at the bottom of the
message. Note, I have not installed anything like pthreads on this box -
it is just a web server. Can't Mathematica make use of them?
BLAS seems to work on Solaris
http://www.cs.utexas.edu/users/kgoto/signup_first.html
A quick web search shows several references to BLAS on Solaris, so why
should Mathematica not use them, if it uses them on HP-UX?
Just wondering what is so hard about making Mathematica use multiple
processors on Solaris. I've been thinking for years Mathematica should
support multiple processors. Given the sort of program it is, support
for multiple processors would be useful.
That said, I'm well aware finding problems in threaded programs can be a
real pain, as they are not easily reproducible. I'd rather Mathematica
took its time to get the right result, rather than give a wrong one in
less time!!
I've copied this to a Solaris newsgroup too, although the original
question was only put on the Mathematica newsgroup.
PS, you might want to change
http://support.wolfram.com/mathematica/systems/allplatforms/multipleprocessors.html
as it is clearly out of date now.
David Kirkby.
webserver2 # man -k thread
biodone biodone (9f) - release buffer after buffer I/O
transfer and notify blocked threads
cancellation cancellation (3thr) - overview of concepts related to
POSIX thread cancellation
ddi_get_kt_did ddi_get_kt_did (9f) - get identifier of current thread
ddi_mmap_get_model ddi_mmap_get_model (9f) - return data
model type of current thread
door_bind door_bind (3door) - bind or unbind the current thread
with the door server pool
door_server_create door_server_create (3door) - specify an
alternative door server thread creation function
door_unbind door_bind (3door) - bind or unbind the current thread
with the door server pool
libglib-2.0 libglib-2.0 () - general purpose utility library, GLib
support for dynamic plug-ins, GLib support for thread abstraction
libgmodule-2.0 libglib-2.0 () - general purpose utility library, GLib
support for dynamic plug-ins, GLib support for thread abstraction
libgthread-2.0 libglib-2.0 () - general purpose utility library, GLib
support for dynamic plug-ins, GLib support for thread abstraction
libmtmalloc libmtmalloc (3lib) - multi-threaded memory allocator
library
libpthread libpthread (3lib) - POSIX threads library
libthread libthread (3lib) - threads library
libthread_db libthread_db (3lib) - threads debugging library
libthread_db libthread_db (3thr) - library of interfaces for
monitoring and manipulating threads-related aspects of multithreaded
programs
mq_notify mq_notify (3rt) - notify process (or thread) that a
message is available on a queue
mt-streams mt-streams (9f) - STREAMS multithreading
ps_kill ps_pstop (3proc) - process and LWP control in
libthread_db
ps_lcontinue ps_pstop (3proc) - process and LWP control in
libthread_db
ps_lgetfpregs ps_lgetregs (3proc) - routines that access the target
process register in libthread_db
ps_lgetregs ps_lgetregs (3proc) - routines that access the target
process register in libthread_db
ps_lgetxregs ps_lgetregs (3proc) - routines that access the target
process register in libthread_db
ps_lgetxregsize ps_lgetregs (3proc) - routines that access the target
process register in libthread_db
ps_lrolltoaddr ps_pstop (3proc) - process and LWP control in
libthread_db
ps_lsetfpregs ps_lgetregs (3proc) - routines that access the target
process register in libthread_db
ps_lsetregs ps_lgetregs (3proc) - routines that access the target
process register in libthread_db
ps_lsetxregs ps_lgetregs (3proc) - routines that access the target
process register in libthread_db
ps_lstop ps_pstop (3proc) - process and LWP control in
libthread_db
ps_pcontinue ps_pstop (3proc) - process and LWP control in
libthread_db
ps_pdread ps_pread (3proc) - interfaces in libthread_db that
target process memory access
ps_pdwrite ps_pread (3proc) - interfaces in libthread_db that
target process memory access
ps_pread ps_pread (3proc) - interfaces in libthread_db that
target process memory access
ps_pstop ps_pstop (3proc) - process and LWP control in
libthread_db
ps_ptread ps_pread (3proc) - interfaces in libthread_db that
target process memory access
ps_ptwrite ps_pread (3proc) - interfaces in libthread_db that
target process memory access
ps_pwrite ps_pread (3proc) - interfaces in libthread_db that
target process memory access
pthread_atfork pthread_atfork (3c) - register fork handlers
pthread_attr_destroy pthread_attr_init (3thr) - initialize
or destroy threads attribute object
pthread_attr_getdetachstate pthread_attr_getdetachstate (3thr) -
get or set detachstate attribute
pthread_attr_getguardsize pthread_attr_getguardsize (3thr) -
get or set the thread guardsize attribute
pthread_attr_getinheritsched pthread_attr_getinheritsched (3thr) -
get or set inheritsched attribute
pthread_attr_getschedparam pthread_attr_getschedparam (3thr) -
get or set schedparam attribute
pthread_attr_getschedpolicy pthread_attr_getschedpolicy (3thr) -
get or set schedpolicy attribute
pthread_attr_getscope pthread_attr_getscope (3thr) - get or
set contentionscope attribute
pthread_attr_getstackaddr pthread_attr_getstackaddr (3thr) -
get or set stackaddr attribute
pthread_attr_getstacksize pthread_attr_getstacksize (3thr) -
get or set stacksize attribute
pthread_attr_init pthread_attr_init (3thr) - initialize
or destroy threads attribute object
pthread_attr_setdetachstate pthread_attr_getdetachstate (3thr) -
get or set detachstate attribute
pthread_attr_setguardsize pthread_attr_getguardsize (3thr) -
get or set the thread guardsize attribute
pthread_attr_setinheritsched pthread_attr_getinheritsched (3thr) -
get or set inheritsched attribute
pthread_attr_setschedparam pthread_attr_getschedparam (3thr) -
get or set schedparam attribute
pthread_attr_setschedpolicy pthread_attr_getschedpolicy (3thr) -
get or set schedpolicy attribute
pthread_attr_setscope pthread_attr_getscope (3thr) - get or
set contentionscope attribute
pthread_attr_setstackaddr pthread_attr_getstackaddr (3thr) -
get or set stackaddr attribute
pthread_attr_setstacksize pthread_attr_getstacksize (3thr) -
get or set stacksize attribute
pthread_cancel pthread_cancel (3thr) - cancel execution of a thread
pthread_cleanup_pop pthread_cleanup_pop (3thr) - pop a
thread cancellation cleanup handler
pthread_cleanup_push pthread_cleanup_push (3thr) - push a
thread cancellation cleanup handler
pthread_cond_broadcast pthread_cond_signal (3thr) - signal or
broadcast a condition
pthread_cond_destroy pthread_cond_init (3thr) - initialize
or destroy condition variables
pthread_cond_init pthread_cond_init (3thr) - initialize
or destroy condition variables
pthread_cond_reltimedwait_np pthread_cond_wait (3thr) - wait on a
condition
pthread_cond_signal pthread_cond_signal (3thr) - signal or
broadcast a condition
pthread_cond_timedwait pthread_cond_wait (3thr) - wait on a
condition
pthread_cond_wait pthread_cond_wait (3thr) - wait on a
condition
pthread_condattr_destroy pthread_condattr_init (3thr) -
initialize or destroy condition variable attributes object
pthread_condattr_getpshared pthread_condattr_getpshared (3thr) -
get or set the process-shared condition variable attributes
pthread_condattr_init pthread_condattr_init (3thr) -
initialize or destroy condition variable attributes object
pthread_condattr_setpshared pthread_condattr_getpshared (3thr) -
get or set the process-shared condition variable attributes
pthread_create pthread_create (3thr) - create a thread
pthread_detach pthread_detach (3thr) - detach a thread
pthread_equal pthread_equal (3thr) - compare thread IDs
pthread_exit pthread_exit (3thr) - terminate calling thread
pthread_getconcurrency pthread_getconcurrency (3thr) - get or
set level of concurrency
pthread_getschedparam pthread_getschedparam (3thr) - access
dynamic thread scheduling parameters
pthread_getspecific pthread_getspecific (3thr) - manage
thread-specific data
pthread_join pthread_join (3thr) - wait for thread termination
pthread_key_create pthread_key_create (3thr) - create
thread-specific data key
pthread_key_delete pthread_key_delete (3thr) - delete
thread-specific data key
pthread_kill pthread_kill (3thr) - send a signal to a thread
pthread_mutex_consistent_np pthread_mutex_consistent_np (3thr) -
make a mutex consistent after owner death
pthread_mutex_destroy pthread_mutex_init (3thr) - initialize
or destroy a mutex
pthread_mutex_getprioceiling pthread_mutex_getprioceiling (3thr) -
change the priority ceiling of a mutex
pthread_mutex_init pthread_mutex_init (3thr) - initialize
or destroy a mutex
pthread_mutex_lock pthread_mutex_lock (3thr) - lock or
unlock a mutex
pthread_mutex_setprioceiling pthread_mutex_getprioceiling (3thr) -
change the priority ceiling of a mutex
pthread_mutex_trylock pthread_mutex_lock (3thr) - lock or
unlock a mutex
pthread_mutex_unlock pthread_mutex_lock (3thr) - lock or
unlock a mutex
pthread_mutexattr_destroy pthread_mutexattr_init (3thr) -
initialize and destroy mutex attributes object
pthread_mutexattr_getprioceiling pthread_mutexattr_getprioceiling
(3thr) - get and set prioceiling attribute of mutex attribute object
pthread_mutexattr_getprotocol pthread_mutexattr_getprotocol (3thr)
- get and set protocol attribute of mutex attribute object
pthread_mutexattr_getpshared pthread_mutexattr_getpshared (3thr) -
get and set process-shared attribute
pthread_mutexattr_getrobust_np pthread_mutexattr_getrobust_np (3thr)
- get or set robustness attribute of mutex attribute object
pthread_mutexattr_gettype pthread_mutexattr_gettype (3thr) -
get or set a mutex type
pthread_mutexattr_init pthread_mutexattr_init (3thr) -
initialize and destroy mutex attributes object
pthread_mutexattr_setprioceiling pthread_mutexattr_getprioceiling
(3thr) - get and set prioceiling attribute of mutex attribute object
pthread_mutexattr_setprotocol pthread_mutexattr_getprotocol (3thr)
- get and set protocol attribute of mutex attribute object
pthread_mutexattr_setpshared pthread_mutexattr_getpshared (3thr) -
get and set process-shared attribute
pthread_mutexattr_setrobust_np pthread_mutexattr_getrobust_np (3thr)
- get or set robustness attribute of mutex attribute object
pthread_mutexattr_settype pthread_mutexattr_gettype (3thr) -
get or set a mutex type
pthread_once pthread_once (3thr) - initialize dynamic package
pthread_rwlock_destroy pthread_rwlock_init (3thr) - initialize
or destroy a read-write lock object
pthread_rwlock_init pthread_rwlock_init (3thr) - initialize
or destroy a read-write lock object
pthread_rwlock_rdlock pthread_rwlock_rdlock (3thr) - lock
or attempt to lock a read-write lock object for reading
pthread_rwlock_tryrdlock pthread_rwlock_rdlock (3thr) - lock
or attempt to lock a read-write lock object for reading
pthread_rwlock_trywrlock pthread_rwlock_wrlock (3thr) - lock
or attempt to lock a read-write lock object for writing
pthread_rwlock_unlock pthread_rwlock_unlock (3thr) - unlock
a read-write lock object
pthread_rwlock_wrlock pthread_rwlock_wrlock (3thr) - lock
or attempt to lock a read-write lock object for writing
pthread_rwlockattr_destroy pthread_rwlockattr_init (3thr) -
initialize or destroy read-write lock attributes object
pthread_rwlockattr_getpshared pthread_rwlockattr_getpshared (3thr)
- get or set process-shared attribute of read-write lock attributes object
pthread_rwlockattr_init pthread_rwlockattr_init (3thr) -
initialize or destroy read-write lock attributes object
pthread_rwlockattr_setpshared pthread_rwlockattr_getpshared (3thr)
- get or set process-shared attribute of read-write lock attributes object
pthread_self pthread_self (3thr) - get calling thread's ID
pthread_setcancelstate pthread_setcancelstate (3thr) - enable
or disable cancellation
pthread_setcanceltype pthread_setcanceltype (3thr) - set
the cancellation type of a thread
pthread_setconcurrency pthread_getconcurrency (3thr) - get or
set level of concurrency
pthread_setschedparam pthread_getschedparam (3thr) - access
dynamic thread scheduling parameters
pthread_setspecific pthread_getspecific (3thr) - manage
thread-specific data
pthread_sigmask pthread_sigmask (3thr) - change or examine calling
thread's signal mask
pthread_testcancel pthread_testcancel (3thr) - create
cancellation point in the calling thread
pthreads threads (3thr) - concepts related to POSIX pthreads and
Solaris threads and the libpthread and libthread libraries
td_event_addset td_ta_event_addr (3thr) - thread events in libthread_db
td_event_delset td_ta_event_addr (3thr) - thread events in libthread_db
td_event_emptyset td_ta_event_addr (3thr) - thread events
in libthread_db
td_event_fillset td_ta_event_addr (3thr) - thread events
in libthread_db
td_eventisempty td_ta_event_addr (3thr) - thread events in libthread_db
td_eventismember td_ta_event_addr (3thr) - thread events
in libthread_db
td_init td_init (3thr) - performs initialization for
libthread_db library of interfaces
td_sync_get_info td_sync_get_info (3thr) - operations on
a synchronization object in libthread_db
td_sync_get_stats td_sync_get_info (3thr) - operations on
a synchronization object in libthread_db
td_sync_setstate td_sync_get_info (3thr) - operations on
a synchronization object in libthread_db
td_sync_waiters td_sync_get_info (3thr) - operations on a
synchronization object in libthread_db
td_ta_clear_event td_ta_event_addr (3thr) - thread events
in libthread_db
td_ta_delete td_ta_new (3thr) - allocate and deallocate process
handles for libthread_db
td_ta_enable_stats td_ta_enable_stats (3thr) - collect
target process statistics for libthread_db
td_ta_event_addr td_ta_event_addr (3thr) - thread events
in libthread_db
td_ta_event_getmsg td_ta_event_addr (3thr) - thread events
in libthread_db
td_ta_get_nthreads td_ta_get_nthreads (3thr) - gets the
total number of threads in a process for libthread_db
td_ta_get_ph td_ta_new (3thr) - allocate and deallocate process
handles for libthread_db
td_ta_get_stats td_ta_enable_stats (3thr) - collect target process
statistics for libthread_db
td_ta_map_id2thr td_ta_map_id2thr (3thr) - convert a
thread id or LWP id to a thread handle
td_ta_map_lwp2thr td_ta_map_id2thr (3thr) - convert a
thread id or LWP id to a thread handle
td_ta_new td_ta_new (3thr) - allocate and deallocate process
handles for libthread_db
td_ta_reset_stats td_ta_enable_stats (3thr) - collect
target process statistics for libthread_db
td_ta_set_event td_ta_event_addr (3thr) - thread events in libthread_db
td_ta_sync_iter td_ta_sync_iter (3thr) - iterator functions on process
handles from libthread_db
td_ta_sync_tracking_enable td_sync_get_info (3thr) - operations on
a synchronization object in libthread_db
td_ta_thr_iter td_ta_sync_iter (3thr) - iterator functions on process
handles from libthread_db
td_ta_tsd_iter td_ta_sync_iter (3thr) - iterator functions on process
handles from libthread_db
td_thr_clear_event td_ta_event_addr (3thr) - thread events
in libthread_db
td_thr_dbresume td_thr_dbsuspend (3thr) - suspend and resume threads in
libthread_db
td_thr_dbsuspend td_thr_dbsuspend (3thr) - suspend and
resume threads in libthread_db
td_thr_event_enable td_ta_event_addr (3thr) - thread events
in libthread_db
td_thr_event_getmsg td_ta_event_addr (3thr) - thread events
in libthread_db
td_thr_get_info td_thr_get_info (3thr) - get thread information in
libthread_db library of interfaces
td_thr_getfpregs td_thr_getgregs (3thr) - reading and
writing thread registers in libthread_db
td_thr_getgregs td_thr_getgregs (3thr) - reading and writing thread
registers in libthread_db
td_thr_getxregs td_thr_getgregs (3thr) - reading and writing thread
registers in libthread_db
td_thr_getxregsize td_thr_getgregs (3thr) - reading and
writing thread registers in libthread_db
td_thr_lockowner td_thr_lockowner (3thr) - iterate over
the set of locks owned by a thread
td_thr_set_event td_ta_event_addr (3thr) - thread events
in libthread_db
td_thr_setfpregs td_thr_getgregs (3thr) - reading and
writing thread registers in libthread_db
td_thr_setgregs td_thr_getgregs (3thr) - reading and writing thread
registers in libthread_db
td_thr_setprio td_thr_setprio (3thr) - set the priority of a thread
td_thr_setsigpending td_thr_setsigpending (3thr) - manage
thread signals for libthread_db
td_thr_setxregs td_thr_getgregs (3thr) - reading and writing thread
registers in libthread_db
td_thr_sigsetmask td_thr_setsigpending (3thr) - manage
thread signals for libthread_db
td_thr_sleepinfo td_thr_sleepinfo (3thr) - return the
synchronization handle for the object on which a thread is blocked
td_thr_tsd td_thr_tsd (3thr) - get a thread's thread-specific
data for libthread_db library of interfaces
td_thr_validate td_thr_validate (3thr) - test a thread handle for validity
thr_continue thr_suspend (3thr) - suspend or continue thread execution
thr_create thr_create (3thr) - create a thread
thr_exit thr_exit (3thr) - terminate the calling thread
thr_getconcurrency thr_getconcurrency (3thr) - get or set
thread concurrency level
thr_getprio thr_getprio (3thr) - access dynamic thread scheduling
thr_getspecific thr_keycreate (3thr) - thread-specific-data functions
thr_join thr_join (3thr) - wait for thread termination
thr_keycreate thr_keycreate (3thr) - thread-specific-data functions
thr_kill thr_kill (3thr) - send a signal to a thread
thr_main thr_main (3thr) - identify the main thread
thr_min_stack thr_min_stack (3thr) - return the minimum-allowable
size for a thread's stack
thr_self thr_self (3thr) - get calling thread's ID
thr_setconcurrency thr_getconcurrency (3thr) - get or set
thread concurrency level
thr_setprio thr_getprio (3thr) - access dynamic thread scheduling
thr_setspecific thr_keycreate (3thr) - thread-specific-data functions
thr_sigsetmask thr_sigsetmask (3thr) - change or examine calling
thread's signal mask
thr_stksegment thr_stksegment (3thr) - get thread stack address and size
thr_suspend thr_suspend (3thr) - suspend or continue thread execution
thr_yield thr_yield (3thr) - yield to another thread
threads threads (3thr) - concepts related to POSIX pthreads and
Solaris threads and the libpthread and libthread libraries
tnf_thread_disable tnf_process_disable (3tnf) - probe
control internal interface
tnf_thread_enable tnf_process_disable (3tnf) - probe
control internal interface
webserver2 #
Prev by Date:
Re: Plotting a super ellipse
Next by Date:
Re: Do loops in Mathematica
Previous by thread:
Re: Does Mathematica 5 use multiple processors on SPARC?
Next by thread:
Re: Does Mathematica 5 use multiple processors on SPARC?
|