C действительно используется для большого количества Научных вычислений?

Ответ D Shawley хорош, я просто хотел добавить несколько точек, потому что другие ответы отражают неполное понимание того, что продолжается.

Имеют в виду, что архивные файлы (.a) не ограничиваются содержанием объектных файлов (.o). Они могут содержать произвольные файлы. Не часто полезный, но видят , динамический компоновщик dependenciy информация встроил в архив для глупого приема компоновщика.

Также уведомление, что объектные файлы (.o) являются не обязательно результатом единственной единицы компиляции. Возможно частично связать несколько меньших объектных файлов в единственный больший файл.

http://www.mihaiu.name/2002/library_development_linux/ - ищет на этой странице "частичный"

10
задан Joel Coehoorn 9 December 2011 в 14:45
поделиться

5 ответов

В моем бизнесе (физика элементарных частиц) мы в значительной степени перешли от fortran 77 прямо к C ++ и python. Те из нас, кто заботится о программировании, все знают c, но он написан только для нишевых приложений (встроенные платы DAQ, специальные драйверы, ...).

Но изучение c даст вам фирму основы программирования, и спорить с профессорами редко бывает выгодно.

24
ответ дан 3 December 2019 в 13:19
поделиться

Си широко используется в программировании. Большинство из нас, программистов, когда-либо кодировали на C, особенно когда мы учимся в колледже. Думаю, это просто ваши предпочтения профессора: -)

1
ответ дан 3 December 2019 в 13:19
поделиться

Многие «научные вычисления» выполняются в Mathematica, Matlab и других подобных инструментах.

Ну ... я думаю, что внутри Matlab написан на C или C ++, но многие части Mathematica написаны на самой Mathematica. Безусловно, по историческим причинам, а также из-за присущих C характеристик, многие научные и высокотехнологичные библиотеки программного обеспечения и тому подобное написаны на C / C ++.

Я подозреваю, что C / C ++ по-прежнему будет пользоваться преимуществами для многих приложений реального времени и высокопроизводительных приложений, возможно, не столько для самих вычислений (которые не могут быть выражены на языках более высокого уровня), сколько для локальной оптимизации. жестких циклов, а также для взаимодействия с различными компонентами, будь то физические части оборудования или программные элементы, такие как, например, структуры параллельных вычислений.

Как отметил Дмке, изучение c обеспечивает хорошую основу для программирования в целом, по крайней мере, для процедурного программирования. Он также имеет практическое применение, так что мнение вашего профессора в настоящее время имеет сильную поддержку. Но сделайте! продолжайте с уважением оспаривать мудрость, полученную от ваших профессоров и старейшин, понимая, что иногда, как хорошие мастера дзен, они направляют вас на путь, не столько для цели, сколько для путешествия / процесса.

4
ответ дан 3 December 2019 в 13:19
поделиться

Я не думаю, что ответ вашего профессора служит вам хорошо, даже если он правильный.

По моему опыту в качестве консультанта по научным вычислениям и системам данных язык C, безусловно, используется очень часто. , но также Фортран и C ++. Python - безусловно, наиболее часто используемый язык сценариев.

Я думаю, что это изменится. Сейчас большое дело - параллельные вычисления, и это болезненно (кому-нибудь MPI?) На традиционных языках, о которых я упоминал. Я предполагаю, что большая часть распараллеливания будет (и должна быть) перенесена на виртуальные машины: Java или .NET; то есть, я думаю, что параллелизм должен быть задачей JIT. Будет ли это включено, скажем, с Fortress или с одним из традиционных языков, я не знаю. Intel продвигает параллельные инструменты для C / C ++, но мне интересно, может ли что-то вроде Terracotta лучше в долгосрочной перспективе (я не слышал, чтобы кто-нибудь в научном сообществе пробовал это - большие финансы сделали это, но они не так открыты).

Если вопрос в том, что вам следует научиться, чтобы устроиться на работу в области научных вычислений, то первое, что я скажу, это то, что вас скорее возьмут на работу за ваши научные навыки, чем за навыки программирования (что частично объясняет плачевное состояние многих научных код, подробнее см. в этой теме SO ). Если вы собираетесь нанять из-за ваших навыков программирования (вероятно, HPC), то учтите, что, по мнению этого профессора, они могут быть устаревшими для новых проектов в не столь отдаленном будущем. Тем не менее, было бы неплохо узнать немного Python, включая NumPy .

Я не слышал ни о ком в научном сообществе, кто пробовал это - большие финансы имеют, но они не так открыты).

Если вопрос в том, чему вы должны научиться, чтобы устроиться на работу в области научных вычислений, то первое, что я Я бы сказал, что вас скорее возьмут на работу из-за ваших научных навыков, чем ваших навыков программирования (что частично объясняет печальное состояние большого количества научного кода, подробнее об этом см. эта тема SO ) . Если вы собираетесь нанять из-за ваших навыков программирования (вероятно, HPC), то учтите, что, по мнению этого профессора, они могут быть устаревшими для новых проектов в не столь отдаленном будущем. Тем не менее, было бы неплохо узнать немного Python, включая NumPy .

Я не слышал ни о ком в научном сообществе, кто пробовал это - большие финансы имеют, но они не так открыты).

Если вопрос в том, чему вы должны научиться, чтобы устроиться на работу в области научных вычислений, то первое, что я Я бы сказал, что вас скорее возьмут на работу из-за ваших научных навыков, чем ваших навыков программирования (что частично объясняет печальное состояние большого количества научного кода, подробнее об этом см. эта тема SO ) . Если вы собираетесь нанять из-за ваших навыков программирования (вероятно, HPC), то учтите, что, по мнению этого профессора, они могут быть устаревшими для новых проектов в не столь отдаленном будущем. Тем не менее, было бы неплохо узнать немного Python, включая NumPy .

Если вопрос заключается в том, чему вы должны научиться, чтобы устроиться на работу в области научных вычислений, то первое, что я бы сказал, это то, что вас, скорее всего, возьмут на работу за ваши научные навыки, чем за навыки программирования (что частично объясняет извините, состояние большого количества научного кода, подробнее см. в этой теме SO ). Если вы собираетесь нанять из-за ваших навыков программирования (вероятно, HPC), то учтите, что, по мнению этого профессора, они могут быть устаревшими для новых проектов в не столь отдаленном будущем. Тем не менее, было бы неплохо узнать немного Python, включая NumPy .

Если вопрос в том, чему вы должны научиться, чтобы устроиться на работу в области научных вычислений, то первое, что я бы сказал, это то, что вас, скорее всего, возьмут на работу за ваши научные навыки, чем за навыки программирования (что частично объясняет извините, состояние большого количества научного кода, подробнее см. в этой теме SO ). Если вы собираетесь нанять из-за ваших навыков программирования (вероятно, HPC), то учтите, что, по мнению этого профессора, они могут быть устаревшими для новых проектов в не столь отдаленном будущем. Тем не менее, было бы неплохо узнать немного Python, включая NumPy .

Вас скорее возьмут на работу из-за ваших научных навыков, чем ваших навыков программирования (что частично объясняет плачевное состояние большого количества научного кода, подробнее об этом см. этот раздел SO ). Если вы собираетесь нанять из-за ваших навыков программирования (вероятно, HPC), то учтите, что, по мнению этого профессора, они могут быть устаревшими для новых проектов в не столь отдаленном будущем. Тем не менее, было бы неплохо узнать немного Python, включая NumPy .

Вас скорее возьмут на работу из-за ваших научных навыков, чем ваших навыков программирования (что частично объясняет плачевное состояние большого количества научного кода, подробнее об этом см. в этой теме SO ). Если вы собираетесь нанять из-за ваших навыков программирования (вероятно, HPC), то учтите, что, по мнению этого профессора, они могут быть устаревшими для новых проектов в не столь отдаленном будущем. Тем не менее, было бы неплохо узнать немного Python, включая NumPy .

13
ответ дан 3 December 2019 в 13:19
поделиться

Из того, что я слышал, Фортран очень распространен для научных целей, но язык C достаточно универсален, поэтому для некоторых он является хорошим решением для большинства типов программирования.

7
ответ дан 3 December 2019 в 13:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: