Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Выбор IDE + СУБД


Автор: Neptune 25.11.2012, 14:20
Здравствуйте! 
Необходим совет по выбору инструментов реализации ПО, которое должно производить не очень сложные расчеты над многомерными векторами 
и в перспективе нужно будет научить его строить графики по результатам этого расчета.

Задача: имеется множество векторов, порядка 400-500 тыс. штук. В данный момент они хранятся в *.txt.
Основная цель написание программы - вычисление расстояний между векторами, определение среднего расстояния, наиболее близких векторов и т.п. 
Расчеты нужно проводить не над всем множеством, а над конкретными выборками, сформированными случайным образом.

В не столь близкой перспективе вижу ПО, которое работает с какой-либо СУБД, хранящей вектора в параметрическом виде.
В программе есть модуль формирования выборок из общей базы. После чего производятся необходимые расчеты, результаты которых представляются 
в числовом виде и в графическом, посредством диаграмм.

Писаться должно на С++. Обычно, когда время от времени возникает необходимость написания легких программок, пользуюсь Builder C++ 6. 
Был опыт С++ Builder 6 + СУБД Firebird. 

Подскажите, какую связку IDE + СУБД можно применить, для достижения максимального эффекта при минимальной сложности.
Желательно, чтобы СУБД была фриворная. И вообще, есть ли смысл заморачиваться с СУБД, если можно хранить в файлах... ?
Программа должна быть реализована грамотно с точки зрения функционала и архитектуры (алгоритма).
Спасибо.

Автор: borisbn 26.11.2012, 08:58
Цитата(Neptune @  25.11.2012,  14:20 Найти цитируемый пост)
Подскажите, какую связку IDE + СУБД можно применить, для достижения максимального эффекта при минимальной сложности.

Чтобы ответить на этот вопрос нужно знать
1) Макс. размерность векторов (2D, 3D или вообще ND)
2) Предполагаемое количество операций с этими векторами в секунду
3) Что за диаграммы Вы собираетесь рисовать

Если бы такого рода задача стояла бы передо мной, то я бы выбрал QtCreator+SQLite. Если же размерность векторов невелика (2-3D), то может стоит загружать их все в память (400...500 тыс. - это немного. Для 3D вектора с координатами с двойной точностью (double) - порядка 12 МБ)

Автор: tzirechnoy 26.11.2012, 09:19
Цитата
В не столь близкой перспективе вижу ПО, которое работает с какой-либо СУБД


Зачем? 500 тыс. векторов, если считать размерность 10 и по 128-бит вещественному числу (16 байт) -- это будет 80 мегабайт. Весь Ваш массив вполне поместится в память роутера чуть вышэ среднего -- и тем более в память компьютэра.

СУБД (ну, РСУБД) имеет смысл если есть нетривиальные реляцыонные отношэния между данными. Тогда писать выборки этих данных удобней под РСУБД.
У вас они точно есть? А можэт -- нет, и всё полным перебором решается? Тем более, что полный перебор восьмидесяти метров памяти при эффективных алгоритмах займёт десяток милисекунд.

Цитата
Писаться должно на С++.


Сочувствую. Хотя, конечно, в качестве числодробилки у него много плюсов по сравнению с каждой алтэрнативой.

Цитата
Подскажите, какую связку IDE + СУБД можно применить, для достижения максимального эффекта при минимальной сложности.


Ну, по поводу СУБД не будем -- Вы пока ни слова не сказали о том, зачем Вам СУБД. А IDE... Я бы посоветовал unix с классическим подходом. Да, несмотря на то, что кажэтся, что это операцыонная система -- это именно интэгрированная среда программирования, очень старая, но от того только помощневшая.
Но Вы вроде привыкли к Builder? И ужэ решыли про C++? Так Вам незачем и менять свои привычки пока что.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)