Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -552,6 +552,16 @@ else
@echo "Compiling $$@" $(call get-frame-text-for,$(1))
@$(CC) $(call get-frame-cflags-for,$(1)) -c $$< -o $$@
endif

ifneq ($(findstring hpx,$(THREADING_MODEL)),)
$(BASE_OBJ_FRAME_PATH)/%.o: $(FRAME_PATH)/%.cpp $(BLIS_H_FLAT) $(MAKE_DEFS_MK_PATHS)
ifeq ($(ENABLE_VERBOSE),yes)
$(CXX) $(call get-frame-cxxflags-for,$(1)) -c $$< -o $$@
else
@echo "Compiling $$@" $(call get-frame-cxxtext-for,$(1))
@$(CXX) $(call get-frame-cxxflags-for,$(1)) -c $$< -o $$@
endif
endif
endef

# first argument: a kernel set (name) being targeted (e.g. haswell).
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ writing complex kernels.

* **Advanced multithreading support.** BLIS allows multiple levels of
symmetric multithreading for nearly all level-3 operations. (Currently, users
may choose to obtain parallelism via either OpenMP or POSIX threads). This
may choose to obtain parallelism via OpenMP, POSIX threads, or HPX). This
means that matrices may be partitioned in multiple dimensions simultaneously to
attain scalable, high-performance parallelism on multicore and many-core
architectures. The key to this innovation is a thread-specific control tree
Expand Down
40 changes: 25 additions & 15 deletions blastest/src/cblat1.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,11 @@ static real c_b52 = 0.f;
/* ===================================================================== */
/* Main program */ int main(void)
{
#ifdef BLIS_ENABLE_HPX
char* program = "cblat1";
bli_thread_initialize_hpx( 1, &program );
#endif

/* Initialized data */

static real sfac = 9.765625e-4f;
Expand Down Expand Up @@ -136,7 +141,12 @@ static real c_b52 = 0.f;
}
s_stop("", (ftnlen)0);

return 0;
#ifdef BLIS_ENABLE_HPX
return bli_thread_finalize_hpx();
#else
// Return peacefully.
return 0;
#endif
} /* main */

/* Subroutine */ int header_(void)
Expand Down Expand Up @@ -230,23 +240,23 @@ static real c_b52 = 0.f;
complex q__1;

/* Builtin functions */
integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
e_wsle(void);
/* Subroutine */ int s_stop(char *, ftnlen);

/* Local variables */
integer i__;
complex cx[8];
integer np1, len;
extern /* Subroutine */ int cscal_(integer *, complex *, complex *,
integer *), ctest_(integer *, complex *, complex *, complex *,
extern /* Subroutine */ int cscal_(integer *, complex *, complex *,
integer *), ctest_(integer *, complex *, complex *, complex *,
real *);
complex mwpcs[5], mwpct[5];
extern real scnrm2_(integer *, complex *, integer *);
extern /* Subroutine */ int itest1_(integer *, integer *), stest1_(real *,
real *, real *, real *);
extern integer icamax_(integer *, complex *, integer *);
extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer
extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer
*);
extern real scasum_(integer *, complex *, integer *);

Expand Down Expand Up @@ -465,7 +475,7 @@ static real c_b52 = 0.f;
complex q__1;

/* Builtin functions */
integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
integer s_wsle(cilist *), do_lio(integer *, integer *, char *, ftnlen),
e_wsle(void);
/* Subroutine */ int s_stop(char *, ftnlen);

Expand All @@ -481,23 +491,23 @@ static real c_b52 = 0.f;
#else
complex cdotc_(
#endif
integer *, complex *, integer
integer *, complex *, integer
*, complex *, integer *);
extern /* Subroutine */ int ccopy_(integer *, complex *, integer *,
extern /* Subroutine */ int ccopy_(integer *, complex *, integer *,
complex *, integer *);
extern /* Complex */
#ifdef BLIS_ENABLE_COMPLEX_RETURN_INTEL
void cdotu_(complex *,
#else
complex cdotu_(
#endif
integer *, complex *, integer
integer *, complex *, integer
*, complex *, integer *);
extern /* Subroutine */ int cswap_(integer *, complex *, integer *,
complex *, integer *), ctest_(integer *, complex *, complex *,
extern /* Subroutine */ int cswap_(integer *, complex *, integer *,
complex *, integer *), ctest_(integer *, complex *, complex *,
complex *, real *);
integer ksize;
extern /* Subroutine */ int caxpy_(integer *, complex *, complex *,
extern /* Subroutine */ int caxpy_(integer *, complex *, complex *,
integer *, complex *, integer *);

/* Fortran I/O blocks */
Expand Down Expand Up @@ -691,7 +701,7 @@ complex cdotu_(
sfac)
{
real scomp[1], strue[1];
extern /* Subroutine */ int stest_(integer *, real *, real *, real *,
extern /* Subroutine */ int stest_(integer *, real *, real *, real *,
real *);

/* ************************* STEST1 ***************************** */
Expand Down Expand Up @@ -733,7 +743,7 @@ real sdiff_(real *sa, real *sb)
return ret_val;
} /* sdiff_ */

/* Subroutine */ int ctest_(integer *len, complex *ccomp, complex *ctrue,
/* Subroutine */ int ctest_(integer *len, complex *ccomp, complex *ctrue,
complex *csize, real *sfac)
{
/* System generated locals */
Expand All @@ -745,7 +755,7 @@ real sdiff_(real *sa, real *sb)
/* Local variables */
integer i__;
real scomp[20], ssize[20], strue[20];
extern /* Subroutine */ int stest_(integer *, real *, real *, real *,
extern /* Subroutine */ int stest_(integer *, real *, real *, real *,
real *);

/* **************************** CTEST ***************************** */
Expand Down
Loading