Added openblas_set_num_threads for Fortran.
authorXianyi Zhang <xianyi@iscas.ac.cn>
Fri, 6 May 2011 09:03:35 +0000 (17:03 +0800)
committerXianyi Zhang <xianyi@iscas.ac.cn>
Fri, 6 May 2011 09:03:35 +0000 (17:03 +0800)
Changelog.txt
driver/others/Makefile
driver/others/openblas_set_num_threads.c [new file with mode: 0644]

index 4f83fdf97eb2948c65aef35c80bdb8b3427bff5d..0a9f182fae2593089c9447c19bdb3966141ec986 100644 (file)
@@ -15,6 +15,7 @@ common:
        * Provided an error message when the arch is not supported.(Refs 
          issue #19 on github)
        * Fixed issue #23. Fixed a bug of f_check script about generating link flags.
+       * Added openblas_set_num_threads for Fortran.
 
 x86/x86_64:
        * 
index bc5de3848637e89a1e8831d2f5b4c54b115c2be4..ab0e2fea03afc77dbbd2d18a15b84038806dd63a 100644 (file)
@@ -6,7 +6,7 @@ COMMONOBJS       = memory.$(SUFFIX) xerbla.$(SUFFIX) c_abs.$(SUFFIX) z_abs.$(SUFFIX)
 COMMONOBJS     += slamch.$(SUFFIX) slamc3.$(SUFFIX) dlamch.$(SUFFIX)  dlamc3.$(SUFFIX)
 
 ifdef SMP
-COMMONOBJS     += blas_server.$(SUFFIX) divtable.$(SUFFIX) blasL1thread.$(SUFFIX) 
+COMMONOBJS     += blas_server.$(SUFFIX) divtable.$(SUFFIX) blasL1thread.$(SUFFIX) openblas_set_num_threads.$(SUFFIX)
 ifndef NO_AFFINITY
 COMMONOBJS     += init.$(SUFFIX) 
 endif
@@ -100,6 +100,8 @@ memory.$(SUFFIX) : $(MEMORY) ../../common.h ../../param.h
 blas_server.$(SUFFIX) : $(BLAS_SERVER) ../../common.h ../../common_thread.h ../../param.h
        $(CC) $(CFLAGS) -c $< -o $(@F)
 
+openblas_set_num_threads.$(SUFFIX) : openblas_set_num_threads.c
+
 blasL1thread.$(SUFFIX) : blas_l1_thread.c ../../common.h ../../common_thread.h
        $(CC) $(CFLAGS) -c $< -o $(@F)
 
diff --git a/driver/others/openblas_set_num_threads.c b/driver/others/openblas_set_num_threads.c
new file mode 100644 (file)
index 0000000..7ca3b71
--- /dev/null
@@ -0,0 +1,45 @@
+/*****************************************************************************
+Copyright (c) 2011, Lab of Parallel Software and Computational Science,ICSAS
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+   1. Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in
+      the documentation and/or other materials provided with the
+      distribution.
+   3. Neither the name of the ISCAS nor the names of its contributors may 
+      be used to endorse or promote products derived from this software 
+      without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 
+USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+**********************************************************************************/
+
+#include "common.h"
+
+#ifdef SMP_SERVER
+#ifdef OS_LINUX
+
+extern  void openblas_set_num_threads(int num_threads) ;
+
+void NAME(int* num_threads){
+       openblas_set_num_threads(*num_threads);
+}
+
+#endif
+#endif