سؤال

وأنا أخذ حاليا درس الرياضيات في كلية تسمى "الحوسبة العلمية"، وقال لنا الأستاذ أن C هي اللغة الأكثر شيوعا ل، حسنا، والحوسبة العلمية، وأنا أتساءل فقط لمدى دقة هذا الأستاذ هو؟

هل كانت مفيدة؟

المحلول

في عملي (فيزياء الجسيمات) انتقلنا الى حد كبير من فورتران 77 على التوالي إلى c ++ وبايثون. نحن الذين <م> الرعاية حول البرمجة نعلم جميعا ج، ولكن هو مكتوب فقط للتطبيقات المتخصصة (المجالس دق جزءا لا يتجزأ، والسائقين لأغراض خاصة، ...).

ولكن هل تعلم ج تعطيك أساس متين للبرمجة، ونادرا ما يكون مربحا أن يجادل مع الأساتذة.

نصائح أخرى

وأنا لا أعتقد أن الجواب أستاذ الخاص بك هو خدمة لكم التوفيق حتى لو كان هو الصحيح.

في تجربتي كمستشار لالحوسبة العلمية ونظم البيانات C يستخدم بالتأكيد الكثير، ولكن هكذا هي فورتران وC ++. الثعبان هو إلى حد بعيد لغة البرمجة الأكثر شيوعا.

وأعتقد أن هذا هو الذهاب الى تغيير. الصفقة الكبرى الآن هي الحوسبة المتوازية وهذا أمر مؤلم (MPI أي شخص؟) في اللغات التقليدية لقد ذكر. تكهنات بلدي هو أن الكثير من الموازاة و(ويجب) يمكن نقلها إلى الأجهزة الظاهرية: جافا أو. NET. أي، وأعتقد أن الموازاة يجب أن تكون وظيفة JIT ل. سواء كان ذلك سيتم تمكين، ويقول، قلعة أو واحدة واحدة من اللغات التقليدية، وأنا لا أعرف. وتسعى إنتل أدوات موازية للC / C ++، ولكن وأتساءل عما إذا كان هناك شيء مثل الطين وربما أفضل على المدى الطويل (لم أسمع من أي شخص في المجتمع العلمي الذي قد حاولت ذلك --- تمويل كبير له، لكنها ليست مفتوحة ذلك).

وإذا كان السؤال هو ما ينبغي أن تتعلم الحصول على وظيفة في مجال الحوسبة العلمية، ثم أول شيء أود أن أقوله هو أن كنت أكثر عرضة للحصول على التعاقد للمهارات العلمية الخاصة بك من مهارات البرمجة الخاصة بك (وهو ما يفسر جزئيا الحالة المؤسفة للكثير من التعليمات البرمجية العلمي، لمعرفة المزيد عن هذا راجع هذا SO الموضوع ). إذا كنت <م> هي ذاهب الى أن التعاقد لمهارات البرمجة الخاصة بك (وربما HPC)، ثم نرى أن في رأي هذا الأستاذ، قد تكون تلك عفا عليها الزمن لمشاريع جديدة في المستقبل غير البعيد. فإنه لا يضر لمعرفة بعض بيثون، على الرغم من، بما في ذلك نمباي .

من ما سمعت فورتران أمر شائع جدا لأغراض علمية، ولكن C هو للأغراض العامة بما فيه الكفاية بالنسبة للبعض هو حل جيد بالنسبة لمعظم أي نوع من البرمجة.

لالمعلوماتية الحيوية وعلم الأحياء الحسابي، C تحظى بشعبية كبيرة.

ويتم التعامل مع الكثير من "الحوسبة العلمية" في الرياضيات، ماتلاب وغيرها من الأدوات المماثلة.

وحسنا ... تحت غطاء محرك السيارة، يتم كتابة مطلب في C أو C ++، كما أعتقد، ولكن مكتوبة أجزاء كثيرة من الرياضيات في الرياضيات نفسها. للتأكد، لأسباب تاريخية، وأيضا بسبب الخصائص الجوهرية C، والعديد من الحوسبة مكتبات البرامج العلمية والتكنولوجيا الفائقة وهذا هو مكتوب في C / C ++.

وأظن ستواصل C / C ++ للاستمتاع حافة مواتية للعديد من التطبيقات في الوقت الحقيقي والأداء العالي، وربما ليس كثيرا لالحوسبة الخام نفسها (والتي لا يمكن التعبير عنها في اللغات عالية المستوى)، ولكن لتعظيم الاستفادة المحلي من حلقات ضيقة، وللتفاعل مع مختلف المكونات، سواء كانت قطع المادية للالمعدات اللازمة، أو عناصر البرنامج مثل على سبيل المثال أطر الحوسبة المتوازية.

وكما أشار dmckee خارج، ودراسة ج يوفر أساسا جيدا للبرمجة بشكل عام، على الأقل البرمجة الإجرائية. كما أن لديها تطبيقات عملية، لذلك رأي أستاذك لديه بعض بدعم قوي في هذا الوقت. لكن افعل! تستمر في تحدي، الاحترام، والحكمة التي وردت من أساتذة وشيوخ الخاص، وفهم أنه في بعض الأحيان مثل الماجستير زن جيدة، وضعوا لك على الطريق، وليس ذلك بكثير للوجهة ولكن لسفر / العملية.

وعلى نطاق واسع المستخدمة-C في البرمجة. معظمنا مبرمج من أي وقت مضى الترميز في C خصوصا عندما نكون في الكلية. انها مجرد تفضيل أستاذ أعتقد: -)

<اقتباس فقرة>   

هل C تستخدم حقا لكثير من الحوسبة العلمية؟

والحوسبة العلمية يشمل أشياء كثيرة مختلفة، وبالتالي، وتستخدم العديد من لغات البرمجة المختلفة للحوسبة العلمية.

وتقليديا، والحوسبة العلمية تعني الحوسبة عالية الأداء وكان محدودا في نطاق لمعظمهم الجبر الخطي وبعض الطرق الطيفية (مثل FFTs) وجرى معظمها في فورتران. ومنذ ذلك الحين، توسعت اتساع الحوسبة العلمية بشكل كبير مع كثير من الناس تفكر الآن الحوسبة التقنية (مثل البيانات، الرسم البياني التآمر، والنماذج تحشد) التي تقع تحت العنوان نفسه والآخرين التقاط أشكال جديدة من الحوسبة عالية الأداء مثل حساب رمزي.

واللغات مثل بيثون، R، الرياضيات وMATLAB وتستخدم عادة للالحوسبة التقنية. لغات مثل C، C ++ وفورتران لا تزال تستخدم لعدد الطحن. وتستخدم لغات مثل لغة كامل الموضوعية لحساب رمزي على نطاق واسع.

ووالبرامج المهنية بناء مبرمج للعلماء والمهندسين ويمكنني أن أقول أن ما يقرب مكتوبة كلنا منهجيات العددية في C. حتى في حالتنا هو بالتأكيد صحيح. لدينا جيوب C ++ وفورتران. من حيث الأداء فمن الصعب الفوز مشفرة بشكل جيد C ومترجم جيد. جدا، وأحيانا جدا ونحن قد تراجع في التجمع.

ولكن العالم قد تغير كثيرا. بايثون هي لغة رائعة - اجمل IMHO اللغة ويمكن استدعاء المكتبات المحلية. ثم هناك R مرة أخرى لغة مصدر تفسيره ولكن مع مكتبة ضخمة من الطرق العددية كل جمعت C أو C ++. ثم إضافة كافة الأجهزة الأساليب الجديدة المتسارعة مثل openCL والعديد من الارتباطات ... C أو فورتران لم يعد الحل الوحيد. ولكن بالنسبة التقليدي عدد CPU الطحن C و ASM هي الأفضل في فئتها.

ومن تجربتي في العمل في مختبرات مختلفة ومعاهد البحوث، وأود أن أقول تعلم لغة الكمبيوتر فقط تعطيك أساسا ومقدمة في البرمجة. سوف C أو جافا تكون لغة مواتية لالتقاط كما التقديم، حتى أستاذك هو الصحيح لبعض تمديد.

والقدرة على تطبيق المعرفة في 1 لغة إلى لغة أخرى هو مفتاح النجاح في بيئة العمل الحاسوبية / التنمية. وأنت تتحرك من خلال مختلف شركات المجموعة / معاهد / المختبر، وستجد أن كل واحد منهم سيكون له تفضيلاتهم الخاصة في اللغة / البرمجيات. أن تكون قادرة على تعلم أشياء جديدة وبسرعة أكثر أهمية من محاولة حفظ بناء الجملة من لغة واحدة معينة.

وبطبيعة الحال، إذا كنت تحصل على اختيار اللغة التي تختارها لمشروع ما، اختر 1 يحتوي على المكتبات التي تحتاج إليها.

نعم، ANSI C يرافقه MPI.

وأحيانا الناس يريدون استخدام "موضوعي C"، وهو ما يعني أنها وضعت وظائف في طرق الدرجة الكبيرة، وسوف كل examplar منه تشغيلها على جوهر منفصل. لاحظ أن هذا ليس C ++، ولكن "C مع الأشياء". ولا يتم استخدام أي من الميزات C ++ إلا نموذج طريقة وجوه. هذا هو مجرد التفاف القديمة نفسها C إلى "نموذج كائن عقلاني"، ويسمح لاستخدام طبقات المتوسطة وهلم جرا.

والأمثلة الجيدة على أعلاه:. LAMMPS

وسحر ++ هو آخر وسيلة جيدة للحصول على "حسن البالغ من العمر C بطريقة حديثة".

في تلة أخرى من لغات العلمية هي LISP، هاسكل وغيرها من الجماعات الفوقية لانغ. وهذا هو الآخر، "لينة" عالم البرمجة العلمية، حيث الوقت ليس مشكلة، ولكن وجود إجابة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top