Ist R lebensfähig für den (implementierten) Produktionscode?

25

Ich habe eine Reihe von Artikeln gelesen, in denen es um Unternehmen wie Google, Facebook und viele andere geht, die R für Forschungszwecke verwenden. Das andere Szenario, über das ich gelesen habe, ist, dass Unternehmen R verwenden, um eine Analyselösung zu prototypisieren und sie dann in einer anderen Sprache erneut zu implementieren.

Ich versuche, Literatur zu Unternehmen zu finden, die R für den eigentlichen Code der Produktionsanalyse verwenden. Ein Anwendungsfall kann ein Empfehlungssystem sein, mit dem der Benutzer über eine Webseite interagiert, die eine Antwort von einem R-Skript erhält, das auf einem Remote-Server ausgeführt wird. Die Tatsache, dass ich Probleme habe, solche Berichte zu finden, lässt mich fragen, ob es nicht ratsam ist. Wenn ja warum?

trinkt
quelle
1
Das ist eine gute Frage. Ich habe eine Ahnung, aber ich weiß nicht genug, um dies zu einer tatsächlichen Antwort zu machen. Mein Verdacht ist, dass R, da es unter der GPL vertrieben wird, alle damit verbundenen Derivate kostenlos und auch Open Source sein müssen. Dies kann bedeuten, dass Unternehmen, die mit Unternehmenssoftware Gewinne erzielen möchten, sich von R abwenden, weil sie das Produkt nicht verkaufen können.
Gregmacfarlane
3
Nur wenn Ihr Gewinn auf dem Verkauf der Software basiert - und selbst dann geben manche Leute die Software immer noch als zB RStudio ab, dessen Quellcode auf Github ist.
Dirk Eddelbuettel

Antworten:

16

Ja ist es. Auf dieser Seite finden Sie beispielsweise die wunderbare kopflose RServe R-Serverinstanz (von R Core-Mitglied Simon Urbanek), in der die folgenden Bereitstellungen aufgeführt sind:

Some projects using Rserve:
   The Dataverse Network Project   Phenyx                     "J" interface
   Nexus BPM                       Taverna                    Bio7
   INTAMAP                         Screensaver HTS LIMS       CRISP
   WWARN

mit Links auf der Seite, auf die oben verwiesen wurde.

"Industrie" neigt dazu, sich mehr mit Details auseinander zu setzen als die Wissenschaft, so dass Sie unter Druck stehen, "offizielle" Aussagen zu finden. Anbieter wie Revolution Analytics oder Oracle Ship R und deren Verkäufer haben möglicherweise Geschichten für Sie.

Dirk Eddelbüttel
quelle
3
+1 für Verkäufer. Angenommen, Sie möchten etwas kaufen, und eine ganze Reihe von Verkäufern wird die SSN ihres CEOs herausgeben.
Fomite
1

Typischerweise nicht, da R eine interpretierte Sprache ist, die im Durchschnitt um ein Vielfaches langsamer ist als äquivalenter kompilierter Code. Während das Konvertieren Ihres Programms in C, Fortran oder Java eine erhebliche Investition erfordert, kann der Code buchstäblich 10-100-mal schneller ausgeführt werden als eine entsprechende R-Version. Darüber hinaus verfügt R nur über sehr eingeschränkte Tools zum Bearbeiten großer Datensätze, insbesondere für Cluster, die verarbeitet werden müssen, oder für die spezielle Hardware erforderlich ist. Darüber hinaus müssen die meisten kommerziellen Implementierungen Benutzeroberflächen bereitstellen und in vorhandene Frameworks passen, die normalerweise in anderen Sprachen geschrieben sind. Sie könnten zwar mit vorhandenem R-Code aus den meisten kompilierten Sprachen kommunizieren (es gibt Wrapper), aber Ihre numerischen Kernroutinen wären immer noch nicht schneller als der ursprüngliche R-Code. Am Ende des Tages,

user1337732
quelle
2
> (...) der Code kann buchstäblich 10-100X schneller laufen als eine entsprechende R-Version, der ich nicht zustimme. Fast alle R-Bibliotheken sind in C oder Fortran geschrieben. Das R fungiert hauptsächlich als "Kleber" zwischen ihnen, und seine relativ schlechte Leistung zählt nicht.
Adam Ryczkowski
1
Nicht wahr. Während die Kernbibliothek in C geschrieben sein kann, sind die meisten High-Level-Algorithmen in R in R geschrieben. Die JIT-Optimierung ändert die Regeln hinsichtlich der Leistung von interpretierten Sprachen gegenüber kompilierten Sprachen, aber soweit ich weiß, sind keine Anstrengungen erforderlich Diese Zeilen sind für R im Gange (Python ist sehr bemüht: siehe PyPy).
user1337732
1
Ich benutze regelmäßig R, um Matrizen mit einer Größe von 2 GB zu bearbeiten.
Jan Galkowski
0

Ich glaube (aber dies basiert auf einer Anekdote), dass R eher von den oben genannten Unternehmen als Prototypsprache verwendet wird. R zeichnet sich durch die Aufgabe aus, mehrere Modelle schnell und effektiv zu entwickeln und zu testen. Es ist jedoch keine gute Lösung für Personalisierungsaufgaben, da diese häufig stattfinden müssen, wenn ein Benutzer mit einer bestimmten Website interagiert, und ich glaube (auch dies ist größtenteils eine Anekdote), dass solche Modelle in der Regel in einer kompilierten Sprache neu geschrieben werden (Java, C, C ++).

Davon abgesehen, gute Frage, und ich würde gerne beweisen, dass ich in dieser Sache falsch liege.

richiemorrisroe
quelle