Commit e6c12f85 authored by Arkadiy Marinenko's avatar Arkadiy Marinenko

правила создания тестовой задачи (6 этап, заключительный)

parent f572ccbf
...@@ -17,4 +17,9 @@ ...@@ -17,4 +17,9 @@
Пример использования решателей paralution внутри кода: math::PARALUTION_equationSolver eqSolver = math::PARALUTION_equationSolver(); Пример использования решателей paralution внутри кода: math::PARALUTION_equationSolver eqSolver = math::PARALUTION_equationSolver();
При создании библиотеки gcdfes для линковщика подключить следующие библиотеки в следующем порядке (для варианта, когда используются как решатели mkl, так и решатели paralution): -lcomsdk -lnla3d -lmath -lparalution -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl -lboost_system При создании библиотеки gcdfes для линковщика подключить следующие библиотеки в следующем порядке (для варианта, когда используются как решатели mkl, так и решатели paralution): -lcomsdk -lnla3d -lmath -lparalution -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl -lboost_system
Пример проекта CodeBlocks (libgcdfes.cbp) и make-файла находятся в папке libgcdfes (для корректной работы нужно добавить два файла - gcdfes.cpp и gcdfes.h). Пример проекта CodeBlocks (libgcdfes.cbp) и make-файла находятся в папке libgcdfes (для корректной работы нужно добавить два файла - gcdfes.cpp и gcdfes.h).
6. Создать проект решаемой задачи (проект исполняемого файла). Допустим, он будет называться gcdfes (пример проекта CodeBlocks - gcdfes.cbp и make-файла есть в папке gcdfes). Тестовую задачу можно взять здесь: https://sa2systems.ru:881/gcd/gcdfes/blob/master/tests/test_gcdfes
Компилятору указать пути к корневой директории проектов, директориям comsdk, easylogging++, libgcdfes, math, nla3d и eigen.
Для линковщика подключить следующие библиотеки в следующем порядке: -lcomsdk -lnla3d -lmath -lboost_system
В папку с полученным исполняемым файлом поместить библиотеку libgcdfes.so, полученную в предыдущем пункте, а также необходимые файлы задачи - *.tsk, *.tsl, *.bc, *.dot, *.neu, ...
Для запуска программы нужно в LD_LIBRARY_PATH прописать пути к библиотекам mkl (если используются решатели mkl) и/или paralution (если используются решатели paralution).
В качестве альтернативы можно использовать sh-скрипт запуска. Пример sh-скрипта есть в папке gcdfes.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="gcdfes" />
<Option pch_mode="2" />
<Option compiler="gcc" />
<Build>
<Target title="Debug">
<Option output="bin/Debug/gcdfes" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Debug/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-m64" />
<Add option="-g" />
<Add directory="../../cuda_nla3d" />
<Add directory="../comsdk/dev" />
<Add directory="../easylogging" />
<Add directory="../libgcdfes" />
<Add directory="../math" />
<Add directory="../nla3d" />
<Add directory="/usr/include/eigen3" />
</Compiler>
<Linker>
<Add option="-m64" />
<Add option="-lcomsdk" />
<Add option="-lnla3d" />
<Add option="-lmath" />
<Add option="-lboost_system" />
<Add directory="../comsdk/rls" />
<Add directory="../math/bin/Debug" />
<Add directory="../nla3d/bin/Debug" />
</Linker>
</Target>
<Target title="Release">
<Option output="bin/Release/gcdfes" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Release/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
<Add option="-m64" />
<Add directory="../../cuda_nla3d" />
<Add directory="../comsdk/dev" />
<Add directory="../easylogging" />
<Add directory="../libgcdfes" />
<Add directory="../math" />
<Add directory="../nla3d" />
<Add directory="/usr/include/eigen3" />
</Compiler>
<Linker>
<Add option="-s" />
<Add option="-m64" />
<Add option="-lcomsdk" />
<Add option="-lnla3d" />
<Add option="-lmath" />
<Add option="-lboost_system" />
<Add directory="../comsdk/rls" />
<Add directory="../math/bin/Release" />
<Add directory="../nla3d/bin/Release" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-Wall" />
<Add option="-fexceptions" />
</Compiler>
<Unit filename="main.cpp" />
<Extensions>
<code_completion />
<envvars />
<lib_finder disable_auto="1" />
<debugger />
</Extensions>
</Project>
</CodeBlocks_project_file>
export LD_PRELOAD=/opt/intel/mkl/lib/intel64/libmkl_core.so:/opt/intel/mkl/lib/intel64/libmkl_sequential.so
export LD_LIBRARY_PATH=/home/USERNAME/cuda_nla3d/comsdk/rls:/home/USERNAME/cuda_nla3d/paralution-1.1.0/build/lib:/opt/intel/mkl/lib/intel64:$LD_LIBRARY_PATH
./gcdfes
#------------------------------------------------------------------------------#
# This makefile was generated by 'cbp2make' tool rev.147 #
#------------------------------------------------------------------------------#
WORKDIR = `pwd`
CC = gcc
CXX = g++
AR = ar
LD = g++
WINDRES = windres
INC =
CFLAGS = -Wall -fexceptions
RESINC =
LIBDIR =
LIB =
LDFLAGS =
INC_DEBUG = $(INC) -I../../cuda_nla3d -I../comsdk/dev -I../easylogging -I../libgcdfes -I../math -I../nla3d -I/usr/include/eigen3
CFLAGS_DEBUG = $(CFLAGS) -m64 -g
RESINC_DEBUG = $(RESINC)
RCFLAGS_DEBUG = $(RCFLAGS)
LIBDIR_DEBUG = $(LIBDIR) -L../comsdk/rls -L../math/bin/Debug -L../nla3d/bin/Debug
LIB_DEBUG = $(LIB)
LDFLAGS_DEBUG = $(LDFLAGS) -m64 -lcomsdk -lnla3d -lmath -lboost_system
OBJDIR_DEBUG = obj/Debug
DEP_DEBUG =
OUT_DEBUG = bin/Debug/gcdfes
INC_RELEASE = $(INC) -I../../cuda_nla3d -I../comsdk/dev -I../easylogging -I../libgcdfes -I../math -I../nla3d -I/usr/include/eigen3
CFLAGS_RELEASE = $(CFLAGS) -O2 -m64
RESINC_RELEASE = $(RESINC)
RCFLAGS_RELEASE = $(RCFLAGS)
LIBDIR_RELEASE = $(LIBDIR) -L../comsdk/rls -L../math/bin/Release -L../nla3d/bin/Release
LIB_RELEASE = $(LIB)
LDFLAGS_RELEASE = $(LDFLAGS) -s -m64 -lcomsdk -lnla3d -lmath -lboost_system
OBJDIR_RELEASE = obj/Release
DEP_RELEASE =
OUT_RELEASE = bin/Release/gcdfes
OBJ_DEBUG = $(OBJDIR_DEBUG)/main.o
OBJ_RELEASE = $(OBJDIR_RELEASE)/main.o
all: debug release
clean: clean_debug clean_release
before_debug:
test -d bin/Debug || mkdir -p bin/Debug
test -d $(OBJDIR_DEBUG) || mkdir -p $(OBJDIR_DEBUG)
after_debug:
debug: before_debug out_debug after_debug
out_debug: before_debug $(OBJ_DEBUG) $(DEP_DEBUG)
$(LD) $(LIBDIR_DEBUG) -o $(OUT_DEBUG) $(OBJ_DEBUG) $(LDFLAGS_DEBUG) $(LIB_DEBUG)
$(OBJDIR_DEBUG)/main.o: main.cpp
$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c main.cpp -o $(OBJDIR_DEBUG)/main.o
clean_debug:
rm -f $(OBJ_DEBUG) $(OUT_DEBUG)
rm -rf bin/Debug
rm -rf $(OBJDIR_DEBUG)
before_release:
test -d bin/Release || mkdir -p bin/Release
test -d $(OBJDIR_RELEASE) || mkdir -p $(OBJDIR_RELEASE)
after_release:
release: before_release out_release after_release
out_release: before_release $(OBJ_RELEASE) $(DEP_RELEASE)
$(LD) $(LIBDIR_RELEASE) -o $(OUT_RELEASE) $(OBJ_RELEASE) $(LDFLAGS_RELEASE) $(LIB_RELEASE)
$(OBJDIR_RELEASE)/main.o: main.cpp
$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c main.cpp -o $(OBJDIR_RELEASE)/main.o
clean_release:
rm -f $(OBJ_RELEASE) $(OUT_RELEASE)
rm -rf bin/Release
rm -rf $(OBJDIR_RELEASE)
.PHONY: before_debug after_debug clean_debug before_release after_release clean_release
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment